8.х Управляемые формы как програмно заполнить табличную часль

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Nik02071, 20 авг 2015.

  1. TopicStarter Overlay
    Nik02071
    Offline

    Nik02071 Опытный в 1С

    Регистрация:
    12 ноя 2008
    Сообщения:
    347
    Симпатии:
    1
    Баллы:
    29
    Имеется документ ПереносДанных в ЗуП3.0 Как програмно выбрать регистр накопления и добавить записи в таб. часть. документа ПереносДанных
    Код:
    ДокПеренДан=документы.ПереносДанных.СоздатьДокумент();
        ДокПеренДан.Дата='20150601';
        ДокПеренДан.Организация=Справочники.Организации.НайтиПоРеквизиту("ИНН","6225000890");
        ДокПеренДан.ПериодРегистрации='20150501';
        ДокПеренДан.Комментарий="Документ введен обработкой";
      
        ТабЧастьДоку=ДокПеренДан.ТаблицаРегистров.Добавить();
      
      
        ТабЧастьДоку.Имя=РегистрыНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.Выбрать();
      
      
         ДокПеренДан.Записать(РежимЗаписиДокумента.Запись);
    
  2. Nemesls
    Offline

    Nemesls

    Регистрация:
    20 авг 2015
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Вот так:

    Код:
    Документ=Документы.РеализацияТоваровУслуг.СоздатьДокумент();
        Документ.БУ=Ложь;
        Документ.Ответственный="123213213";
     
     
        СсылкаНаДокумент=Документы.РеализацияТоваровУслуг.НайтиПоКоду("000000001");
        Отбор=Новый Структура;
        Отбор.Вставить("Регистратор",СсылкаНаДокумент);
    
        ВыборкаИзРегистраНакопления=РегистрыНакопления.Продажи.Выбрать(НачалоПериода,КонецПериода,Отбор);
     
        Пока ВыборкаИзРегистраНакопления.Следующий() цикл
            НоваяСтрокаТаблицы=Документ.Товары.Добавить();
            НоваяСтрокаТаблицы.Сумма=ВыборкаИзРегистраНакопления.Сумма;
        КонецЦикла;
    --- Объединение сообщений, 20 авг 2015 ---
    Вам же по идее не все записи из регистра нужны, поэтому их нужно отобрать.
    В моем случае "НачалоПериода" и "КонецПериода" задают за какой период записи мне нужны.
    В структуру "Отбор" помещайте по каким полям записи вам нужны.
    Синтаксис такой:
    Отбор.Вставить(имя поля в регистре тип строка,значение любой тип);


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

    Т.е. я выбираю из регистра те записи, в которых поле регистратор равно тому документу который я выбрал. В результате получу все записи этого самого документа, остальные отбросятся.
    Последнее редактирование: 20 авг 2015
  3. TopicStarter Overlay
    Nik02071
    Offline

    Nik02071 Опытный в 1С

    Регистрация:
    12 ноя 2008
    Сообщения:
    347
    Симпатии:
    1
    Баллы:
    29
    с помощью этого документа добавляются записи в регистрНакопления
    ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий
    Каждая запись добавленная в табличную часть документа записывается в этот регистр накопления. Не понятно как заполнить этот документ програмно
  4. TopicStarter Overlay
    Nik02071
    Offline

    Nik02071 Опытный в 1С

    Регистрация:
    12 ноя 2008
    Сообщения:
    347
    Симпатии:
    1
    Баллы:
    29
    Спасибо разобрался
  5. Nemesls
    Offline

    Nemesls

    Регистрация:
    20 авг 2015
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Теперь понял. Собственно те регистры накопления, которые будут выбраны, хранятся в таблице значений "ТаблицаРегистровНакопления". Имя и представление регистров имеют тип данных строка. По сути необходимо добавить в эту ТЗ запись, заполнив ее строками.

    ДокПеренДан=документы.ПереносДанных.СоздатьДокумент();
    ДокПеренДан.Дата='20150601';
    ДокПеренДан.Организация=Справочники.Организации.НайтиПоРеквизиту("ИНН","6225000890");
    ДокПеренДан.ПериодРегистрации='20150501';
    ДокПеренДан.Комментарий="Документ введен обработкой";

    ТабЧастьДоку=ДокПеренДан.ТаблицаРегистров.Добавить();


    ТабЧастьДоку.Имя="ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий";
    ТабЧастьДоку.Имя="Данные о начислениях для расчета среднего заработка общий";


    ДокПеренДан.Записать(РежимЗаписиДокумента.Запись);

    ЗУП у меня правда есть только 2.5. В нем отдельные таблицы для регистров накопления, сведений, расчета и т. п.
    В ЗУПЕ 3.0 все регистры в одной таблице?

Поделиться этой страницей