Имя: Пароль:
1C
1С v8
Конвертация 2.0 Данные регистра сведений в документы
0 Veronikin
 
24.09.20
13:35
Подскажите, что я не так делаю?
Нужно из одинаковых конфигураций приемник и источник перегрузить данные - срез последних по регистру сведений в документ.
В ПВД для этого документа ставлю произвольный алгоритм, отключить правило, выбирать одним запросом. В перед обработкой формирую ВыборкуДанных - таблица значений с колонками - реквизиты шапки и тч (в колонки с названием тч передаю таблицу значений, куда будет нужно ее загрузить).
При загрузке у меня формируется документ только по данным первой строки выборки. Как обработать остальные строки?
1 Ёпрст
 
24.09.20
13:37
Нам отсюда не видно твоё пвд и что ты там кодом написал
2 ДенисЧ
 
24.09.20
13:37
Какую ТЧ передал, такой документ и создаётся
3 Veronikin
 
24.09.20
15:26
(1) ПВД, перед обработкой:
ДатаРеорганизации = Константы.ДатаРеорганизации.Получить();

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

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

Запрос.УстановитьПараметр("НаДату",КонецДня(ДатаРеорганизации));
Запрос.УстановитьПараметр("Организация",Параметры.Организация);

ТаблицаОсновныеНачисления                 = Запрос.Выполнить().Выгрузить().СкопироватьКолонки();
ТаблицаДополнительныеНачисления         = Запрос.Выполнить().Выгрузить().СкопироватьКолонки();
ТаблицаОсновныеНачисленияНакладные         = Запрос.Выполнить().Выгрузить().СкопироватьКолонки();
ТаблицаДополнительныеНачисленияНакладные = Запрос.Выполнить().Выгрузить().СкопироватьКолонки();

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

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

        ВыборкаНачисления = ВыборкаПоПодразделениям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "");
        Пока ВыборкаНачисления.Следующий() Цикл    
               Если ВыборкаНачисления.Основной и ВыборкаНачисления.НаправлениеЗатрат = Перечисления.НазначениеСтатейЗатрат.Основные Тогда
                НоваяСтрока = ТаблицаОсновныеНачисления.Добавить();    
                ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаНачисления);
            ИначеЕсли ВыборкаНачисления.Основной и Не ВыборкаНачисления.НаправлениеЗатрат = Перечисления.НазначениеСтатейЗатрат.Основные Тогда
                НоваяСтрока = ТаблицаОсновныеНачисленияНакладные.Добавить();    
                ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаНачисления);
            ИначеЕсли НЕ ВыборкаНачисления.Основной и ВыборкаНачисления.НаправлениеЗатрат = Перечисления.НазначениеСтатейЗатрат.Основные Тогда
                НоваяСтрока = ТаблицаДополнительныеНачисления.Добавить();    
                ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаНачисления);
            Иначе
                НоваяСтрока = ТаблицаДополнительныеНачисленияНакладные.Добавить();    
                ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаНачисления);
            КонецЕсли;
        КонецЦикла;    
        НоваяЗапись.ОсновныеНачисления             = ТаблицаОсновныеНачисления.Скопировать();
        НоваяЗапись.ДополнительныеНачисления     = ТаблицаДополнительныеНачисления.Скопировать();
        НоваяЗапись.ОсновныеНачисленияНакладные = ТаблицаОсновныеНачисления.Скопировать();
        НоваяЗапись.ДополнительныеНачисленияНакладные = ТаблицаДополнительныеНачисления.Скопировать();
        
        ВыгрузитьПоПравилу(,,НоваяЗапись,,"ВводСведенийОРеглУчетеНачисленийПодразделений");
    КонецЦикла;
КонецЦикла;
Сообщить(ВыборкаДанных.Количество());
4 Veronikin
 
24.09.20
15:27
(1) Для ПКО конвертацию свойст поставила получить из внешних данных
5 Йохохо
 
24.09.20
15:45
ВыборкаНачисления = ВыборкаПоПодразделениям.Выбрать();
так?
6 Veronikin
 
24.09.20
16:47
(5) Сама таблица правильно формируется, не выгружаются строки со 2ой в файл
7 Ёпрст
 
24.09.20
16:52
(6) дык передавай не НоваяЗапись, а всю табличку целиком в конце всех твоих циклов
8 Veronikin
 
24.09.20
18:24
(7) Проблема была в том, что при загрузке стоял поиск по номеру и дате, дата была одинаковая, а номер присваивался уже после записи. Добавила поиск по комментарию - все заработало.