Имя: Пароль:
1C
1С v8
КД - как из запроса сделать документ с табличной частью?
,
0 RomaH
 
naïve
14.12.11
09:20
простые списки  вроде научился делать

а вот как из произвольного алгоритма получить документы с табличной частью?
1 ДенисЧ
 
14.12.11
09:25
Создать правило конвертации ТЧ. В ПередВыгрузкой создать таблицу значений, заполнить, передать...
2 AAlexandra
 
14.12.11
09:26
(0) примеры из демки по КД посмотри, там все есть.
Например, ПУБ --> УПП, перенос остатков.
3 RomaH
 
naïve
14.12.11
10:01
(2) а по конкретней можно?
не нахожу примера
4 Defender aka LINN
 
14.12.11
10:03
5 RomaH
 
naïve
14.12.11
10:07
(4) ага, вроде понятно
а с деревом значений такое прокатит? - что бы не формировать ТЗ из запрос, а сразу выгрузить запрос в дерево?
6 RomaH
 
naïve
14.12.11
10:32
хм, а как в запросом получить вложенные ТЗ - как при выборке из ТЧ, но без ТЧ?

т.е.:
ВЫБРАТЬ
   Мед_КартаВыбывшего.Ссылка,
   Мед_КартаВыбывшего.Номер,
   Мед_КартаВыбывшего.Дата,
   Мед_КартаВыбывшего.Услуги.(
       НомерСтроки,
       ФизЛицо,
       Услуга
   )
ИЗ
   Документ.Мед_КартаВыбывшего КАК Мед_КартаВыбывшего

тут получаю выборку с вложеными ТЗ

а вот как такоеже получить из исходных данных типа:

ВЫБРАТЬ
   Мед_КартаВыбывшегоУслуги.Ссылка,
   Мед_КартаВыбывшегоУслуги.Ссылка.Номер,
   Мед_КартаВыбывшегоУслуги.Ссылка.Дата,
   Мед_КартаВыбывшегоУслуги.НомерСтроки,
   Мед_КартаВыбывшегоУслуги.ФизЛицо,
   Мед_КартаВыбывшегоУслуги.Услуга
ИЗ
   Документ.Мед_КартаВыбывшего.Услуги КАК Мед_КартаВыбывшегоУслуги

задача - из регистра ценыноменклатуры создать документы установки цен в другой базе
7 GenV
 
14.12.11
10:38
(6) Выгрузка строк ТЧ в ПКГС идет только через "Для каждого". Т.ч. полностью автоматом не получится. Можно подменять в ПередОбработкой ПКГС КоллекцияОбъектов либо на строки дерева, либо на выгруженную ТЧ запроса.
8 Defender aka LINN
 
14.12.11
10:45
(5) Через ТЗ проще
9 RomaH
 
naïve
14.12.11
11:01
че-то не догоняю

Запрос = Новый Запрос;
Запрос.Текст =
"
|ВЫБРАТЬ
|    ЦеныНоменклатуры.Регистратор КАК Ссылка,
|    ЦеныНоменклатуры.Регистратор.Номер КАК Номер,
|    ЦеныНоменклатуры.Период КАК Дата,
|    ЦеныНоменклатуры.ТипЦен КАК ВидЦены,
|    ЦеныНоменклатуры.Номенклатура,
|    ЦеныНоменклатуры.Цена,
|    Истина КАК ЦенаИзмененаВручную
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
|ИТОГИ
|    МАКСИМУМ(Дата),
|    МАКСИМУМ(Номер)
|ПО
|    Ссылка
|";

ВыборкаДанных = Новый ТаблицаЗначений;

ВыборкаДанных.Колонки.Добавить("Ссылка");
ВыборкаДанных.Колонки.Добавить("Номер");
ВыборкаДанных.Колонки.Добавить("Дата");
ВыборкаДанных.Колонки.Добавить("Товары");


ВыборкаПоДокументам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Ссылка");

Пока ВыборкаПоДокументам.Следующий() Цикл
   
   ВыборкаПоТоварам = ВыборкаПоДокументам.Выбрать();
   
   СтрокаДокумента = ВыборкаДанных.Добавить();
   
   СтрокаДокумента.Ссылка    = ВыборкаПоДокументам.Ссылка;
   СтрокаДокумента.Номер    = ВыборкаПоДокументам.Номер;
   СтрокаДокумента.Дата    = ВыборкаПоДокументам.Дата;
   СтрокаДокумента.Товары    = Новый ТаблицаЗначений;
   
   СтрокаДокумента.Товары.Колонки.Добавить("Номенклатура");
   СтрокаДокумента.Товары.Колонки.Добавить("ВидЦены");
   СтрокаДокумента.Товары.Колонки.Добавить("Цена");
   СтрокаДокумента.Товары.Колонки.Добавить("ЦенаИзмененаВручную");
   
   Пока ВыборкаПоТоварам.Следующий() Цикл
       
       СтрокаТовара = СтрокаДокумента.Товары.Добавить();
       
       СтрокаТовара.Номенклатура = ВыборкаПоТоварам.Номенклатура;
       СтрокаТовара.ВидЦены = ВыборкаПоТоварам.ВидЦены;
       СтрокаТовара.Цена = ВыборкаПоТоварам.Цена;
       СтрокаТовара.ЦенаИзмененаВручную = ВыборкаПоТоварам.ЦенаИзмененаВручную;
       
   КонецЦикла;
   
КонецЦикла;


выгружает только первый документ
10 RomaH
 
naïve
14.12.11
11:05
ага - в ПКО был указан объект источник - убрал, вроде заработало на выгрузку
спасибо
AdBlock убивает бесплатный контент. 1Сергей