Документ реализация
25.04.2015
14:40
#1
Здравствуйте, Форумчане. Нужна помощь.
Стоит такая задача: сделать документ реализация, который автоматически (при создании/открытии документа) заполняет табличную часть из регистра сведений на текущую дату, либо на ту дату, которую укажет пользователь (регистр сведений заполняется пользователем и имеет две колонки период и сама номенклатура). На форме имеется только три первые колонки (№, Точка продаж(контрагент) и Адрес) остальные колонки создаются программно (на каждую номенклатуру на дату из регистра сведений своя колонка (ручка, карандаш и т.п.), т.е. сколько пользователь забьет в регистр сведений номенклатуры столько и будет колонок(на текущую дату). В общем с созданием колонок проблем нет, но проблема в том, что нужно всю эту таблицу хранить виртуально (при записи, естественно ничего не сохраняется, кроме первых трех колонок).
Вот код:
При повторном открытии документа табличная часть должна собираться в таком же порядке в каком записывал пользователь.
1С 8.2, обычное приложение
Стоит такая задача: сделать документ реализация, который автоматически (при создании/открытии документа) заполняет табличную часть из регистра сведений на текущую дату, либо на ту дату, которую укажет пользователь (регистр сведений заполняется пользователем и имеет две колонки период и сама номенклатура). На форме имеется только три первые колонки (№, Точка продаж(контрагент) и Адрес) остальные колонки создаются программно (на каждую номенклатуру на дату из регистра сведений своя колонка (ручка, карандаш и т.п.), т.е. сколько пользователь забьет в регистр сведений номенклатуры столько и будет колонок(на текущую дату). В общем с созданием колонок проблем нет, но проблема в том, что нужно всю эту таблицу хранить виртуально (при записи, естественно ничего не сохраняется, кроме первых трех колонок).
Вот код:
| Код |
|---|
Если ДокументОбъект.ЭтоНовый() Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СписокНоменклатурыСрезПоследних.Номенклатура,
| СписокНоменклатурыСрезПоследних.Период,
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.СписокНоменклатуры.СрезПоследних(&Дата, ) КАК СписокНоменклатурыСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
| ПО СписокНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура";
Запрос.УстановитьПараметр("Дата", Дата);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Если Дата = Выборка.Период Тогда
КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить();
КолонкаТЧ.ТекстШапки = Строка("" + Выборка.Номенклатура + ", " + Выборка.Цена + "" ;
КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода" );
КонецЕсли;
КонецЦикла;
КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить();
КолонкаТЧ.ТекстШапки = "Периодичность закупа";
КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода" );
КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить();
КолонкаТЧ.ТекстШапки = "День недели закупа";
КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода" );
КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить("Контакты" ;
КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода" );
КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить("Сумма" ;
КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода" );
КонецЕсли;
|
1С 8.2, обычное приложение
26.04.2015
12:50
#2
Можно создать в документе дополнительную табличную часть с колонками (Номер строки, Название колонки, Значение колонки), не выводя ее на форму. При открытии формы считывать оттуда данные.
03.05.2015
18:15
#4
Возникла проблема с записью документа. Имеется 2 табличные части: ТаблицаНоменклатуры(там только номенклатура) и Товары(все остальное).
ВизуальныеТовары - табличное поле.
| Код |
|---|
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Товары.Очистить(); КоличествоСтрок = ВизуальныеТовары.Количество() - 1; Для Стр = 0 По КоличествоСтрок Цикл СтрокаТаблицыНоменклатуры = ВизуальныеТовары[Стр]; Для Каждого СтрокаТоваров Из Товары Цикл НоваяСтрока = Товары.Добавить(); НоваяСтрока.Номенклатура = СтрокаТоваров.Номенклатура; НоваяСтрока.ТочкаПродаж = СтрокаТоваров.ТочкаПродаж; НоваяСтрока.Адрес = СтрокаТоваров.Адрес; НоваяСтрока.ПериодичностьЗакупа = СтрокаТоваров.ПериодичностьЗакупа; НоваяСтрока.ДеньНеделиЗакупа = СтрокаТоваров.ДеньНеделиЗакупа; НоваяСтрока.Контакты = СтрокаТоваров.Контакы; КонецЦикла; КонецЦикла; КонецПроцедуры |
При заполнении остатком суммы ведомости на выплату заполняет остатком суммы без учета НДФЛНе обновляется
Читают тему
(гостей: 1)