|
Документ реализация | ☑ | ||
---|---|---|---|---|
0
vitalik_1292
25.04.15
✎
14:29
|
Здравствуйте, Форумчане. Нужна помощь.
Стоит такая задача: сделать документ реализация, который автоматически (при создании/открытии документа) заполняет табличную часть из регистра сведений на текущую дату, либо на ту дату, которую укажет пользователь (регистр сведений заполняется пользователем и имеет две колонки период и сама номенклатура). На форме имеется только три первые колонки (№, Точка продаж(контрагент) и Адрес) остальные колонки создаются программно (на каждую номенклатуру на дату из регистра сведений своя колонка (ручка, карандаш и т.п.), т.е. сколько пользователь забьет в регистр сведений номенклатуры столько и будет колонок(на текущую дату). В общем с созданием колонок проблем нет, но проблема в том, что нужно всю эту таблицу хранить виртуально (при записи, естественно ничего не сохраняется, кроме первых трех колонок). Вот код: [code]Если ДокументОбъект.ЭтоНовый() Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СписокНоменклатурыСрезПоследних.Номенклатура, | СписокНоменклатурыСрезПоследних.Период, | ЦеныНоменклатурыСрезПоследних.Цена |ИЗ | РегистрСведений.СписокНоменклатуры.СрезПоследних(&Дата, ) КАК СписокНоменклатурыСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних | ПО СписокНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура"; Запрос.УстановитьПараметр("Дата", Дата); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Если Дата = Выборка.Период Тогда КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить(); КолонкаТЧ.ТекстШапки = Строка("" + Выборка.Номенклатура + ", " + Выборка.Цена + ""); КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода")); КонецЕсли; КонецЦикла; КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить(); КолонкаТЧ.ТекстШапки = "Периодичность закупа"; КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода")); КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить(); КолонкаТЧ.ТекстШапки = "День недели закупа"; КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода")); КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить("Контакты"); КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода")); КолонкаТЧ = ЭлементыФормы.Товары.Колонки.Добавить("Сумма"); КолонкаТЧ.УстановитьЭлементУправления(Тип("ПолеВвода")); КонецЕсли; [/code] При повторном открытии документа табличная часть должна собираться в таком же порядке в каком записывал пользователь. |
|||
1
GROOVY
25.04.15
✎
14:44
|
Создать реальную ТЧ не предлагать?
А то ведь смешно получится, сегодня юзер в документе одну позицию видит, а завтра открывая его уже другую... |
|||
2
GROOVY
25.04.15
✎
14:44
|
НАфига тогда документ не ясно.
|
|||
3
vitalik_1292
25.04.15
✎
15:38
|
Создать реальную ТЧ не подходит, т.к. количество номенклатуры на каждую дату разное ( соответственно и колонок тоже).
В том то и проблема, чтобы каждый раз не была разная таблица и чтобы данные записывались в виртуальную таблицу и при открытии каждый раз с помощью неё заполнялись. |
|||
4
la luna llena
25.04.15
✎
16:07
|
Зачем?
|
|||
5
Тындр
25.04.15
✎
16:49
|
Пипец. давайте удалять гланды через задний вход.
|
|||
6
rabbidX
25.04.15
✎
17:24
|
В чем смысл колонки под каждую номенклатуру? Как это планируется использовать?
|
|||
7
vitalik_1292
26.04.15
✎
13:46
|
Вот как должно выглядеть: http://rghost.ru/8FNnVrVGY.
|
|||
8
ДенисЧ
26.04.15
✎
13:48
|
||||
9
la luna llena
26.04.15
✎
14:34
|
(7) так сделай отчет, зачем тебе в один документ реализации впихивать десяток контрагентов?
|
|||
10
nemox
27.04.15
✎
10:32
|
Если нужен такой документ, то я бы сделал так:
Создаешь ТЧ в документе с колонками "Контрагент", "Номенклатура", если необходимо - то "Адрес"(если он пишется в регистр сведений, если берется из карточки контрагента, то столбец не нужен). Затем при заполнении получается следующий вид ТЧ документа Контрагент Номенклатура Вася Карандаш Вася Тетрадь Петя Карандаш И т.д. На форме размещаем табличное поле и в него уже выводим информацию из ТЧ в нужном виде, т.е. в виде столбцов с группировкой по конрагентам. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |