Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Документ реализация

Xon
читатель
офлайн
Дата регистрации: 25.04.2015
Сообщений: 3
Пост №1
 
25.04.2015 14:40

Здравствуйте, Форумчане. Нужна помощь.
Стоит такая задача: сделать документ реализация, который автоматически (при создании/открытии документа) заполняет табличную часть из регистра сведений на текущую дату, либо на ту дату, которую укажет пользователь (регистр сведений заполняется пользователем и имеет две колонки период и сама номенклатура). На форме имеется только три первые колонки (№, Точка продаж(контрагент) и Адрес) остальные колонки создаются программно (на каждую номенклатуру на дату из регистра сведений своя колонка (ручка, карандаш и т.п.), т.е. сколько пользователь забьет в регистр сведений номенклатуры столько и будет колонок(на текущую дату). В общем с созданием колонок проблем нет, но проблема в том, что нужно всю эту таблицу хранить виртуально (при записи, естественно ничего не сохраняется, кроме первых трех колонок).
Вот код:

Код
Если ДокументОбъект.ЭтоНовый() Тогда
     
   Запрос = Новый Запрос;
   Запрос.Текст =
     "ВЫБРАТЬ
     |   СписокНоменклатурыСрезПоследних.Номенклатура,
     |   СписокНоменклатурыСрезПоследних.Период,
     |   ЦеныНоменклатурыСрезПоследних.Цена
     |ИЗ
     |   РегистрСведений.СписокНоменклатуры.СрезПоследних(&Дата, ) КАК СписокНоменклатурыСрезПоследних
     |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
     |     ПО СписокНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура";

   Запрос.УстановитьПараметр("Дата", Дата);
   Результат    = Запрос.Выполнить();
   Выборка    = Результат.Выбрать();
     
   Пока Выборка.Следующий() Цикл
     Если Дата = Выборка.Период Тогда
       КолонкаТЧ         = ЭлементыФормы.Товары.Колонки.Добавить();
       КолонкаТЧ.ТекстШапки    = Строка("" + Выборка.Номенклатура + ", " + Выборка.Цена + ""  ;
       КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода"  );
     КонецЕсли;
   КонецЦикла;
     
     КолонкаТЧ         = ЭлементыФормы.Товары.Колонки.Добавить();
     КолонкаТЧ.ТекстШапки    = "Периодичность закупа";
     КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода"  );
     КолонкаТЧ         = ЭлементыФормы.Товары.Колонки.Добавить();
     КолонкаТЧ.ТекстШапки    = "День недели закупа";
     КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода"  );
     КолонкаТЧ         = ЭлементыФормы.Товары.Колонки.Добавить("Контакты"  ;
     КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода"  );
     КолонкаТЧ         = ЭлементыФормы.Товары.Колонки.Добавить("Сумма"  ;
     КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода"  );
   КонецЕсли;
При повторном открытии документа табличная часть должна собираться в таком же порядке в каком записывал пользователь.
1С 8.2, обычное приложение

Bloodwiser
читатель
офлайн
Дата регистрации: 09.05.2010
Сообщений: 712
Пост №2
 
26.04.2015 12:50

Можно создать в документе дополнительную табличную часть с колонками (Номер строки, Название колонки, Значение колонки), не выводя ее на форму. При открытии формы считывать оттуда данные.

Xon
читатель
офлайн
Дата регистрации: 25.04.2015
Сообщений: 3
Пост №3
 
27.04.2015 11:20

Вот так должно выглядеть:

Xon
читатель
офлайн
Дата регистрации: 25.04.2015
Сообщений: 3
Пост №4
 
03.05.2015 18:15

Возникла проблема с записью документа. Имеется 2 табличные части: ТаблицаНоменклатуры(там только номенклатура) и Товары(все остальное).

Код
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
  
    Товары.Очистить();
    КоличествоСтрок = ВизуальныеТовары.Количество() - 1;
    Для Стр = 0 По КоличествоСтрок Цикл
        СтрокаТаблицыНоменклатуры = ВизуальныеТовары[Стр];
        Для Каждого СтрокаТоваров Из Товары Цикл
          
            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.Номенклатура                 = СтрокаТоваров.Номенклатура;
            НоваяСтрока.ТочкаПродаж                   = СтрокаТоваров.ТочкаПродаж;
            НоваяСтрока.Адрес                               = СтрокаТоваров.Адрес;
            НоваяСтрока.ПериодичностьЗакупа    = СтрокаТоваров.ПериодичностьЗакупа;
            НоваяСтрока.ДеньНеделиЗакупа         = СтрокаТоваров.ДеньНеделиЗакупа;
            НоваяСтрока.Контакты                          = СтрокаТоваров.Контакы;
        КонецЦикла;
    КонецЦикла;
  
КонецПроцедуры
 
ВизуальныеТовары - табличное поле.

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация