Добрый день. Проблема с написанием небольшого отчета в 1С. Сам я не 1С программист, поэтому мне совершенно не понятны странности внутреннего языка. Проблема в следующем - я никак не могу полю ДокументНаОсновании (создан мною, тип - документ) документа ОперацияПоРасчСчету присвоить вновь созданный и проинициализированный экземпляр документа СписокСчетов (создан мною).
Контекст, в котором выполняется код - Документ.ОперацияПоРасчСчету. Ошибки, которые выдает 1С (введенны в качестве комментария после кода):
- Неверное присвоение значения. Используйте: .ТекущийДокумент()
- Не выбран документ!
Сразу оговорюсь - предлагал использовать в соответствии с текстом ошибки метод .ТекущийДокумент() - но после сохранения ОперацияПоСчету - поле вновь пустое. Спасибо за любую помощь! Код ниже.
Процедура ДобавитьСчет()
ДобавляемыйСчет = СоздатьОбъект("Документ.Счет");
Если ДобавляемыйСчет.Выбрать("Выберете счет") > 0 Тогда
Если ПустоеЗначение(ДокументНаОсновании) = 1 Тогда
//Поле ДокументНаОсновании ещё не проинициализированно
СписокСчетов = СоздатьОбъект("Документ.СписокСчетов");
СписокСчетов.Новый();
СписокСчетов.НоваяСтрока();
//СписокСчетов.Счет - табличная часть документа СписокСчетов
СписокСчетов.Счет = ДобавляемыйСчет.ТекущийДокумент();
СписокСчетов.Записать();
ДокументНаОсновании = СписокСчетов; //Неверное присвоение значения. Используйте: .ТекущийДокумент()
Иначе
//Поле ДокументНаОсновании проинициализированно, необходимо добавить счет в список счетов
СписокСчетов = ДокументНаОсновании;
СписокСчетов.ВыбратьСтроки();
СписокСчетов.ПолучитьСтроку();
СписокСчетов.НоваяСтрока(); //Не выбран документ!
СписокСчетов.Счет = ДобавляемыйСчет;
СписокСчетов.Записать();
КонецЕсли;
Записать();
ДобавитьВСписокСчет(ДобавляемыйСчет);
КонецЕсли
КонецПроцедуры