Имя: Пароль:
1C
1С v8
Как сливать документы при конвертации
0 petname
 
12.07.12
08:08
есть несколько расходников в ЗУПе при переносе необходимо их слить в один и ведомости из таб части забить в таб чать загружаемого. кто нибудь делал подобное?
1 Мимохожий Однако
 
12.07.12
08:10
наверняка
2 andrewks
 
12.07.12
08:21
да
3 petname
 
12.07.12
08:28
хелп объясните как
4 andrewks
 
12.07.12
08:28
ПВД с произв.алгоритмом
5 petname
 
12.07.12
08:43
это я понял счас пытаюсь свой алгоритм придумать просто пример посмотреть хотелось бы чтоб время меньше тратить а то з..цу подпалят
6 andrewks
 
12.07.12
08:45
ничё, опыт - он так и появляется. а то так и будешь всю жизнь ключи подавать.

используй запрос
7 petname
 
12.07.12
08:49
да пишу я его просто обработку запроса не знаю как делать
8 andrewks
 
12.07.12
08:56
в идеале тебе уже в запросе нужно сгруппировать строки ТЧ в соответствии с требуемым разбиением, чтобы в группировке у тебя уже был конечный состав строк ТЧ.

используй консоль запросов для отладки.
потом втыкаешь запрос в ПВД ПередОбработкой, формируешь ВыборкаДанных, в ПередВыгрузкой извлекаешь ВходяшиеДанные и делаешь ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ИмяТвоегоПКО");
9 Smallrat
 
12.07.12
08:58
я б сделал так:
В правилах выгрузки данных для расходника, перед обработкой: Определил расходник, который будет выгружаться и в который всё сольётся - параметр "ВыборкаДанных"
Там же , но перед выгрузкой: запрос по табчастям сливаемых документов, запихиваем в параметр "ИсходящиеДанные" - примерно так:  ИсходящиеДанные = Новый Структура("ОбъединеннаяТаблица", ОбъединеннаяТаблица);
В ПКО Ведомости для ПКС Табчасти в обработчике "ПередОбработкой" пишем примерно так:

Если ТипЗнч(ВходящиеДанные) = Тип("Структура") Тогда
   Если ВходящиеДанные.Свойство("ОбъединеннаяТаблица") Тогда
       ОбъединеннаяТаблица = ВходящиеДанные.ОбъединеннаяТаблица;
       Если ОбъединеннаяТаблица <> Неопределено Тогда
           КоллекцияОбъектов = ОбъединеннаяТаблица;
       КонецЕсли;
   КонецЕсли;
КонецЕсли;
10 petname
 
12.07.12
09:10
А вот так не сработает ???

   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    РасходныйКассовыйОрдерВыплатаДепонентов.ФизЛицо,
       |    РасходныйКассовыйОрдерВыплатаДепонентов.Ведомость,
       |    РасходныйКассовыйОрдерВыплатаДепонентов.СуммаКВыплате,
       |    РасходныйКассовыйОрдерВыплатаДепонентов.Ссылка.Нов_Касса КАК Нов_Касса,
       |    РасходныйКассовыйОрдерВыплатаДепонентов.Ссылка.Организация,
       |    РасходныйКассовыйОрдерВыплатаДепонентов.Ссылка.Контрагент,
       |    РасходныйКассовыйОрдерВыплатаДепонентов.Ссылка.ВидОперации КАК ВидОперации,
       |    РасходныйКассовыйОрдерВыплатаДепонентов.Ссылка.ПлатежнаяВедомость
       |ИЗ
       |    Документ.РасходныйКассовыйОрдер.ВыплатаДепонентов КАК РасходныйКассовыйОрдерВыплатаДепонентов
       |ГДЕ
       |    РасходныйКассовыйОрдерВыплатаДепонентов.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
       |ИТОГИ ПО
       |    ВидОперации,
       |    Нов_Касса";

   Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
   Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);

   Результат = Запрос.Выполнить();

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

   Пока ВыборкаВидОперации.Следующий() Цикл
       Если ВыборкаВидОперации.ВидОперации=Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику Тогда
           объект=Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
           объект.ВидОперации=Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику;
           объект.ПлатежнаяВедомость=ВыборкаВидОперации.ПлатежнаяВедомость;
           объект.Контрагент=ВыборкаВидОперации.Контрагент;
           объект.Нов_Касса=ВыборкаВидОперации.Нов_Касса;
           объект.Организация=ВыборкаВидОперации.Организация;
           объект.Записать();
       Иначе
           ВыборкаНов_Касса = ВыборкаВидОперации.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
           Пока ВыборкаНов_Касса.Следующий() Цикл
               ВыборкаДетальныеЗаписи = ВыборкаНов_Касса.Выбрать();
               объект=Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
               объект.ВидОперации=ВыборкаНов_Касса.ВидОперации;
               объект.Нов_Касса=ВыборкаНов_Касса.Нов_Касса;
               объект.Организация=ВыборкаНов_Касса.Организация;
               НС=0;
               Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                   Если ВыборкаДетальныеЗаписи.ВидОперации=Перечисления.ВидыОперацийРКО.ВыплатаДепонентов Тогда
                       НС=НС+1;
                       стр=объект.ВыплатаДепонентов.Добавить();
                       стр.Ведомость=ВыборкаДетальныеЗаписи.Ведомость;
                       стр.СуммаКВыплате=ВыборкаДетальныеЗаписи.СуммаКВыплате;
                       стр.ФизЛицо=ВыборкаДетальныеЗаписи.ФизЛицо;
                       стр.НомерСтроки=НС;
                   ИначеЕсли ВыборкаДетальныеЗаписи.ВидОперации=Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыПоВедомостям Тогда
                       НС=НС+1;
                       стр=объект.ВыплатаЗаработнойПлаты.Добавить();
                       стр.Ведомость=ВыборкаДетальныеЗаписи.Ведомость;
                       стр.СуммаКВыплате=ВыборкаДетальныеЗаписи.СуммаКВыплате;
                       стр.НомерСтроки=НС;
                   КонецЕсли;
               КонецЦикла;
               объект.Записать();
           КонецЦикла;
       КонецЕсли;
   КонецЦикла;
11 Smallrat
 
12.07.12
09:31
Наверное сработает. Осталось только определить где оно должно сработать и что получится на выходе.
12 andrewks
 
12.07.12
09:34
(10) это чё за жесть? зачем курочить базу? или у тебя всё надо сделать в рамках одной базы?
13 petname
 
12.07.12
09:36
(12) при переносе из ЗУП в УПП
14 petname
 
12.07.12
09:37
(11) при выгрузке данных пробую
15 Smallrat
 
12.07.12
09:42
(14) Начнем сначала: "Как сливать документы при конвертации" - под конвертацией понимается использование конфигурации "Конвертация данных" ?
16 petname
 
12.07.12
10:18
(15) да в ней в ПКО в выгрузке РасходноКассовогоОрдера есть необходимость сгруппировать документы
17 acsent
 
12.07.12
10:21
создаешь структуру с полями и тч и ВыгрузитьПоПравилу
18 petname
 
12.07.12
10:30
простите за назойливость но можно пример кода я уже просто не воспринимаю ни х..ра
19 Йохохо
 
12.07.12
11:42
у тебя одиночные переносятся один в один, а групповые сливаются, так?
плюс по дате сливаются, что, думаю, не верно
20 Йохохо
 
12.07.12
11:52
как идея
1. формируешь уникальный признак твоей группировки. например Дата+Касса+ВидОперации
2. пихаешь его в ненужный реквизит, в комментарий
3. в ПКГС ТЧ при выгрузке пишешь
НеОчищать = Истина; // ТЧ будет дополняться, а не перезаписываться
4. Ставишь поиск по уникальному признаку группировки
5. изи профит, больше ничего не надо менять
только надо продумать заполнение остальных реквизитов документа
21 Йохохо
 
12.07.12
11:55
фигню написал