Гость
Форумы / [игнор отключен] [закрыт для гостей] / Документ реализация / 4 сообщений из 4, страница 1 из 1
25.04.2015, 14:36
    #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
26.04.2015, 11:26
    #38945486
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Документ реализация
Xon,
почему колонки а не строки?
...
Рейтинг: 0 / 0
26.04.2015, 18:58
    #38945599
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Документ реализация
Ну и создайте регистр: документ, номенклатура, название колонки, а в ресурс значение колонки.
...
Рейтинг: 0 / 0
27.04.2015, 11:18
    #38946005
Xon
Xon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Документ реализация
Вот так это должно выглядеть:
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Документ реализация / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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