powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Документ реализация
4 сообщений из 4, страница 1 из 1
Документ реализация
    #38945219
Xon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xon
Гость
Здравствуйте, Форумчане. Нужна помощь.
Стоит такая задача: сделать документ реализация, который автоматически (при создании/открытии документа) заполняет табличную часть из регистра сведений на текущую дату, либо на ту дату, которую укажет пользователь (регистр сведений заполняется пользователем и имеет две колонки период и сама номенклатура). На форме имеется только три первые колонки (№, Точка продаж(контрагент) и Адрес) остальные колонки создаются программно (на каждую номенклатуру на дату из регистра сведений своя колонка (ручка, карандаш и т.п.), т.е. сколько пользователь забьет в регистр сведений номенклатуры столько и будет колонок(на текущую дату). В общем с созданием колонок проблем нет, но проблема в том, что нужно всю эту таблицу хранить виртуально (при записи, естественно ничего не сохраняется, кроме первых трех колонок).
Вот код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Если ДокументОбъект.ЭтоНовый() Тогда
    
   Запрос = Новый Запрос;
   Запрос.Текст =
     "ВЫБРАТЬ
     |   СписокНоменклатурыСрезПоследних.Номенклатура,
     |   СписокНоменклатурыСрезПоследних.Период,
     |   ЦеныНоменклатурыСрезПоследних.Цена
     |ИЗ
     |   РегистрСведений.СписокНоменклатуры.СрезПоследних(&Дата, ) КАК СписокНоменклатурыСрезПоследних
     |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
     |     ПО СписокНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура";

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


При повторном открытии документа табличная часть должна собираться в таком же порядке в каком записывал пользователь.
1С 8.2, обычное приложение
...
Рейтинг: 0 / 0
Документ реализация
    #38945486
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Xon,
почему колонки а не строки?
...
Рейтинг: 0 / 0
Документ реализация
    #38945599
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и создайте регистр: документ, номенклатура, название колонки, а в ресурс значение колонки.
...
Рейтинг: 0 / 0
Документ реализация
    #38946005
Xon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xon
Гость
Вот так это должно выглядеть:
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Документ реализация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]