Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программное заполние производственного календаря
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
AldemaH
Есть база УПП в которой ведется регл. Производственный календарь. Пытаюсь по его данным заполнить взятый из упп в самописную конфу календарь с помощью регламентированного задания. Доступ и запрос в роди проверил - в норме.
Но толком не могу понять как теперь полученные данные правильно вложить во вновь добавленный календарь.
Ниже код проблемы начинаются на этапе работы с набором записей.

Подкинте идеи в чем проблема. Зам уже загонялся.

процедура загрузкаИзУпп2(днач,дкон) экспорт
    
    ПараметрСоединения = "Srvr=******;Ref=*****;Usr=******;Pwd=******";
    
    V8 = Новый COMОбъект("V83.COMConnector");
    Попытка
        ком = V8.Connect(ПараметрСоединения);
    Исключение
    КонецПопытки;
    
    датанач=началодня(днач);
    датаКон=КонецДня(дкон);
    
    Запрос = ком.NewObject("Запрос");
    Запрос.Текст ="ВЫБРАТЬ
    |    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря,
    |    РегламентированныйПроизводственныйКалендарь.Год КАК Год,
    |    РегламентированныйПроизводственныйКалендарь.Пятидневка КАК Пятидневка,
    |    РегламентированныйПроизводственныйКалендарь.Шестидневка КАК Шестидневка,
    |    РегламентированныйПроизводственныйКалендарь.КалендарныеДни КАК КалендарныеДни,
    |    РегламентированныйПроизводственныйКалендарь.ВидДня КАК ВидДня
    |ИЗ
    |    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
    |ГДЕ
    |    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон
    |";
    Запрос.УстановитьПараметр("ДатаНач", датанач);
    Запрос.УстановитьПараметр("ДатаКон", датаКон);
    
    Результат = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    //Сообщить(ВыборкаДетальныеЗаписи);
    НаборЗаписей = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.СоздатьНаборЗаписей();
    //НаборЗаписей.Отбор.ДатаКалендаря.Установить(ВыборкаДетальныеЗаписи.ДатаКалендаря);
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            НовЗапись                      = НаборЗаписей.Добавить();
            НовЗапись.ВидДня             = ВыборкаДетальныеЗаписи.ВидДня;
            НовЗапись.Пятидневка         = ВыборкаДетальныеЗаписи.Пятидневка;
            НовЗапись.Год                = ВыборкаДетальныеЗаписи.Год;
            НовЗапись.КалендарныеДни     = ВыборкаДетальныеЗаписи.КалендарныеДни;
            НовЗапись.Шестидневка        = ВыборкаДетальныеЗаписи.Шестидневка;
            НаборЗаписей.Записать(Истина);
    КонецЦикла;    
    
конецпроцедуры
Vofka
Какая конкретно проблема? Или какая ошибка?
AldemaH
Vofka @ Сегодня, 14:04 необходимо зарегистрироваться для просмотра ссылки ,
Если пишу в цикле "НаборЗаписей.Добавить();" выдает: Запись с такими ключевыми полями существует.
Пишу "НаборЗаписей.Получить();" выдает недостаточно фактических параметров.
Vofka
AldemaH, через НаборЗаписей, в данном случае, скорее всего у вас добавить ничего не получится. Добавляйте каждую запись через МенеджерЗаписи:

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   Запись = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.СоздатьМенеджерЗаписи();
   ...
   Запись.Записать(Истина);
КонецЦикла;


Ещё, наверное, у вас не заполнятся свойства ВидДня и остальные ссылочные, т.к. это ссылки из другой базы данных. Короче, если с этим буду проблемы, то поищите по форуму или в интернете, информации на этот счет хватает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.