Выгрузка документа с сворачиванием табличной части
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Добрый день помогите разобраться с возникшей проблемой, есть 2 одинаковые конфигурации из одной надо выгружать документ начисление заработной платы работникам организаций, но при условии что в конфигурацию приёмник в табличных частях отражение в регламентном учете и отражение в управленческом учете имена сотрудников организаций будут заменены на какое-то общее название с сворачиванием табличной части. Это делается в ПКГС ПередВыгрузкой или в ПКО ПередВыгрузкой? Нужно ли мне сопоставлять данные источника и приемника в конвертации свойств или поставить галочку получить из входящих данных?
По теме из базы знаний
Найденные решения
(18) nogik, заполнить аналогичными свойствами.
Что значит "не сворачивается"? сотрудники в итоге загружаются в приёмник? если не загружаются, а вместо них пустые значения - проблема при свертке; если выгружаются и подставляются значения, значит.... а впрочем тут вариантов дофига, все перечислять не буду.
Рекомендую выгрузить один документ и посмотреть выгруженный файл с данными (через ИЕ открыть можно).
...и ещё не рекомендую пользоваться поиском по ГУИД, а назначать поля поиска (номер, дата там...)
Что значит "не сворачивается"? сотрудники в итоге загружаются в приёмник? если не загружаются, а вместо них пустые значения - проблема при свертке; если выгружаются и подставляются значения, значит.... а впрочем тут вариантов дофига, все перечислять не буду.
Рекомендую выгрузить один документ и посмотреть выгруженный файл с данными (через ИЕ открыть можно).
...и ещё не рекомендую пользоваться поиском по ГУИД, а назначать поля поиска (номер, дата там...)
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Это делается в ПКГС ПередВыгрузкой
Да, в нём нужно переопределить переменную "коллекция объектов"
Нужно ли мне сопоставлять данные источника и приемника в конвертации свойств или поставить галочку получить из входящих данных
Да, нужно. Входящих данных тут не будет, по этому нужно указывать "Значение" вручную, если в источнике нет такого свойства.
Это у вас 7.7?
В событии ПКГС "Перед обработкой" заполняете переменную КоллекцияОбъектов, редактируете ее как вам надо. После этого сопоставляете реквизиты источника и приемника. Проконтролируйте, чтобы все сопоставляемые данные были в коллекции объектов, то есть, если реквизит Номенклатура сопоставляется, значит должна быть колонка Номенклатура в таблице КоллекцияОбъектов.
Вот, собственно, описание этой переменной в событии ПКГС "Перед обработкой".
КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
В событии ПКГС "Перед обработкой" заполняете переменную КоллекцияОбъектов, редактируете ее как вам надо. После этого сопоставляете реквизиты источника и приемника. Проконтролируйте, чтобы все сопоставляемые данные были в коллекции объектов, то есть, если реквизит Номенклатура сопоставляется, значит должна быть колонка Номенклатура в таблице КоллекцияОбъектов.
Вот, собственно, описание этой переменной в событии ПКГС "Перед обработкой".
КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
(6) Sabfir, в событии ПКГС "Перед обработкой" прописал такой алгоритм это правильно?
ТабличнаяЧасть = СоздатьОбъект("ТаблицаЗначений");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначение");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначениеДоходовИЗатрат");
ТабличнаяЧасть.НоваяКолонка("Сумма");
ТабличнаяЧасть.НоваяКолонка("СчетДт");
ТабличнаяЧасть.НоваяКолонка("СчетКт");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт1");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт2");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт3");
ТабличнаяЧасть.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
ТабличнаяЧасть = СоздатьОбъект("ТаблицаЗначений");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначение");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначениеДоходовИЗатрат");
ТабличнаяЧасть.НоваяКолонка("Сумма");
ТабличнаяЧасть.НоваяКолонка("СчетДт");
ТабличнаяЧасть.НоваяКолонка("СчетКт");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт1");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт2");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт3");
ТабличнаяЧасть.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
(8) nogik,
Пользователь doom2good вам ответил как будет правильно. Возьмите это за основу.
Вы пишете код не по правилам платформы 8.
Если вы перегружаете с 8 платформы в 8, то это:
работать не будет.
Sabfir, в событии ПКГС "Перед обработкой" прописал такой алгоритм это правильно?
ТабличнаяЧасть = СоздатьОбъект("ТаблицаЗначений");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначение");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначениеДоходовИЗатрат");
ТабличнаяЧасть.НоваяКолонка("Сумма");
ТабличнаяЧасть.НоваяКолонка("СчетДт");
ТабличнаяЧасть.НоваяКолонка("СчетКт");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт1");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт2");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт3");
ТабличнаяЧасть.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
ТабличнаяЧасть = СоздатьОбъект("ТаблицаЗначений");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначение");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначениеДоходовИЗатрат");
ТабличнаяЧасть.НоваяКолонка("Сумма");
ТабличнаяЧасть.НоваяКолонка("СчетДт");
ТабличнаяЧасть.НоваяКолонка("СчетКт");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт1");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт2");
ТабличнаяЧасть.НоваяКолонка("СубконтоДт3");
ТабличнаяЧасть.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
Пользователь doom2good вам ответил как будет правильно. Возьмите это за основу.
ТЗИзДокумента = Источник.ТЗСотрудникиИлиКакТамОнаНазывается.Выгрузить();
ТЗИзДокумента.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
КоллекцияОбъектов = ТЗИзДокумента;
ТЗИзДокумента.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
КоллекцияОбъектов = ТЗИзДокумента;
Вы пишете код не по правилам платформы 8.
Если вы перегружаете с 8 платформы в 8, то это:
ТабличнаяЧасть = СоздатьОбъект("ТаблицаЗначений");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначение");
ТабличнаяЧасть.НоваяКолонка("НалоговоеНазначение");
работать не будет.
потом Источник.ВыгрузитьТабличнуюЧасть(КоллекцияОбъектов )
ничего такого
а потом сворачивать по нужным мне параметрам
сначала получить нужную таблицу, готовую к конвертации, а потом запихнуть её в КоллекцияОбъектов.
больше НИЧЕГО НИГДЕ ДЕЛАТЬ НЕ НУЖНО
(10) doom2good, версия программы 8.2 где будет производиться обмен, суть задания в том чтобы в базе приёмнике при переносе документа начисление зарплаты сотрудникам не отображались имена сотрудников чтобы тот человек который с базой работает не могу увидеть какая у кого зп, то есть сверунуть например по нужным мне реквизитам табличной части, а имя сотрудников заменить на значение сотрудник организации например. А можно чуток поподробней как мне получить нужную таблицу, готовую к конвертации? В информации по обработчику ПКГС ПередВыгрузок мало понятно если конечно вам не сложно?
8.2 где будет производиться обмен
а чё тогда код семерочный?
ТЗИзДокумента = Источник.ТЗСотрудникиИлиКакТамОнаНазывается.Выгрузить();
ТЗИзДокумента.ЗаполнитьЗначения( Справочники.Сотрудники.ПустаяСсылка(), "Сотрудник" );
//Тут свернуть по всем полям
КоллекцияОбъектов = ТЗИзДокумента;
ВСЁ!
(12) doom2good, в ПКГС прописал
ТЗИзДокумента = Источник.ОтражениеВРеглУчете.Выгрузить();
ТЗИзДокумента.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
КоллекцияОбъектов = ТЗИзДокумента;
передаёться документ но не идёт свёртка значений в табличной части.
ТЗИзДокумента = Источник.ОтражениеВРеглУчете.Выгрузить();
ТЗИзДокумента.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3", "Сумма");
КоллекцияОбъектов = ТЗИзДокумента;
передаёться документ но не идёт свёртка значений в табличной части.
(16) doom2good, Смотрите сделал всё так как вы сказали
ТЗИзДокумента = Источник.ОтражениеВРеглУчете.Выгрузить();
Для Каждого стр Из ТЗИзДокумента Цикл
Если ТипЗнч(стр.СубконтоДт1)= Тип("СправочникСсылка.ФизическиеЛица") Тогда
стр.СубконтоДт1 = Справочники.ФизическиеЛица.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(стр.СубконтоКт1)= Тип("СправочникСсылка.ФизическиеЛица") Тогда
стр.СубконтоКт1 = Справочники.ФизическиеЛица.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(стр.СубконтоКт2)= Тип("СправочникСсылка.ФизическиеЛица") Тогда
стр.СубконтоКт2 = Справочники.ФизическиеЛица.ПустаяСсылка();
КонецЕсли;
КонецЦикла;
ТЗИзДокумента.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3,СубконтоКт1,СубконтоКт2,СубконтоКт3", "Сумма");
КоллекцияОбъектов = ТЗИзДокумента;
Но опять не свернулись значения.
В табличной части пустые строки проставлять или заполнять аналогичными данными? Уже и так и так делал
ТЗИзДокумента = Источник.ОтражениеВРеглУчете.Выгрузить();
Для Каждого стр Из ТЗИзДокумента Цикл
Если ТипЗнч(стр.СубконтоДт1)= Тип("СправочникСсылка.ФизическиеЛица") Тогда
стр.СубконтоДт1 = Справочники.ФизическиеЛица.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(стр.СубконтоКт1)= Тип("СправочникСсылка.ФизическиеЛица") Тогда
стр.СубконтоКт1 = Справочники.ФизическиеЛица.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(стр.СубконтоКт2)= Тип("СправочникСсылка.ФизическиеЛица") Тогда
стр.СубконтоКт2 = Справочники.ФизическиеЛица.ПустаяСсылка();
КонецЕсли;
КонецЦикла;
ТЗИзДокумента.Свернуть("НалоговоеНазначение, НалоговоеНазначениеДоходовИЗатрат, СчетДт, СчетКт, СубконтоДт1, СубконтоДт2, СубконтоДт3,СубконтоКт1,СубконтоКт2,СубконтоКт3", "Сумма");
КоллекцияОбъектов = ТЗИзДокумента;
Но опять не свернулись значения.
В табличной части пустые строки проставлять или заполнять аналогичными данными? Уже и так и так делал
(18) nogik, заполнить аналогичными свойствами.
Что значит "не сворачивается"? сотрудники в итоге загружаются в приёмник? если не загружаются, а вместо них пустые значения - проблема при свертке; если выгружаются и подставляются значения, значит.... а впрочем тут вариантов дофига, все перечислять не буду.
Рекомендую выгрузить один документ и посмотреть выгруженный файл с данными (через ИЕ открыть можно).
...и ещё не рекомендую пользоваться поиском по ГУИД, а назначать поля поиска (номер, дата там...)
Что значит "не сворачивается"? сотрудники в итоге загружаются в приёмник? если не загружаются, а вместо них пустые значения - проблема при свертке; если выгружаются и подставляются значения, значит.... а впрочем тут вариантов дофига, все перечислять не буду.
Рекомендую выгрузить один документ и посмотреть выгруженный файл с данными (через ИЕ открыть можно).
...и ещё не рекомендую пользоваться поиском по ГУИД, а назначать поля поиска (номер, дата там...)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот