Ответить в теме: Невозможно присвоить полю родительского документа значение, являющееся документом
Для входа нажмите здесь
Вы можете выбрать иконку, характеризующую сообщение
Преобразит www.example.com в [URL]http://www.example.com[/URL].
Сколько таких героев было... на самом деле все в общем-то логично, да и в СинтаксПомошнике все нормально написано.
Да, точно - работает! (СписокСчетов.Счет = ДобавляемыйСчет + .ТекущийДокумент() Спасибо! Вот уж и не думал что так все сложно - можно было бы гораздо прощее сделать. Вот не хватит терпения и сам возьмусь за создание нормальной платформы...
в 1С так нельзя. вообще не понятно за чем сперва получить строку, а потом НоваяСтрока() Нужно: 1. СписокСчетов = СоздатьОбъект("Документ"); СписокСчетов.НайтиДокумент(ДокументНаОсновании); 4. СписокСчетов.НоваяСтрока(); //Не выбран документ! 5. СписокСчетов.Счет = ДобавляемыйСчет; 6. СписокСчетов.Записать(); что-то типа этого
Извените, я что-то не совсем понял... Я использую следующий код: 1. СписокСчетов = ДокументНаОсновании; 2. СписокСчетов.ВыбратьСтроки(); 3. СписокСчетов.ПолучитьСтроку(); 4. СписокСчетов.НоваяСтрока(); //Не выбран документ! 5. СписокСчетов.Счет = ДобавляемыйСчет; 6. СписокСчетов.Записать(); После выполнения первой строки переменная "СписокСчетов" содержит ссылку на документ, с которой я и работаю в последующих строках. Разве не так? А именно, добавляю новую табличную часть. Табличная часть содержит только одно поле - "Счет". Хотя у меня конечно есть подозрение что такой набор строк 2,3 явно излишен...
НоваяСтрока(); применяется к объектному типу, а не к выборке.
Вы правы, спасибо! Что-то я не досмотрел, при ДокументНаОсновании = СписокСчетов.ТекущийДокумент(); отлично всё работает. Спасибо! Вот только я не совсем понимаю откуда берется вторая ошибка: СписокСчетов = ДокументНаОсновании; СписокСчетов.ВыбратьСтроки(); СписокСчетов.ПолучитьСтроку(); СписокСчетов.НоваяСтрока(); //Не выбран документ! СписокСчетов.Счет = ДобавляемыйСчет; СписокСчетов.Записать(); В отладчике на строке: СписокСчетов.НоваяСтрока(); В табло показывается СписокСчетов.Выбран() = 1 но, тем неменее, 1С выдает ошибку "Не выбран документ!"
у вас нетипизированный реквизит ДокументНаОсновании надо сначало использовать НазначитьВиД(<>)
Я использовал, вот только после этой строки ДокументНаОсновании - пустое, при не пустом СписокСчетов! Проверял в отладчике.
ну так и используйте ТекущийДокумент(), т.е. ДокументНаОсновании = СписокСчетов.ТекущийДокумент(); Иначе ты пытаешся ссылочному типу присвоить Объект.
Добрый день. Проблема с написанием небольшого отчета в 1С. Сам я не 1С программист, поэтому мне совершенно не понятны странности внутреннего языка. Проблема в следующем - я никак не могу полю ДокументНаОсновании (создан мною, тип - документ) документа ОперацияПоРасчСчету присвоить вновь созданный и проинициализированный экземпляр документа СписокСчетов (создан мною). Контекст, в котором выполняется код - Документ.ОперацияПоРасчСчету. Ошибки, которые выдает 1С (введенны в качестве комментария после кода): - Неверное присвоение значения. Используйте: .ТекущийДокумент() - Не выбран документ! Сразу оговорюсь - предлагал использовать в соответствии с текстом ошибки метод .ТекущийДокумент() - но после сохранения ОперацияПоСчету - поле вновь пустое. Спасибо за любую помощь! Код ниже. Процедура ДобавитьСчет() ДобавляемыйСчет = СоздатьОбъект("Документ.Счет"); Если ДобавляемыйСчет.Выбрать("Выберете счет") > 0 Тогда Если ПустоеЗначение(ДокументНаОсновании) = 1 Тогда //Поле ДокументНаОсновании ещё не проинициализированно СписокСчетов = СоздатьОбъект("Документ.СписокСчетов"); СписокСчетов.Новый(); СписокСчетов.НоваяСтрока(); //СписокСчетов.Счет - табличная часть документа СписокСчетов СписокСчетов.Счет = ДобавляемыйСчет.ТекущийДокумент(); СписокСчетов.Записать(); ДокументНаОсновании = СписокСчетов; //Неверное присвоение значения. Используйте: .ТекущийДокумент() Иначе //Поле ДокументНаОсновании проинициализированно, необходимо добавить счет в список счетов СписокСчетов = ДокументНаОсновании; СписокСчетов.ВыбратьСтроки(); СписокСчетов.ПолучитьСтроку(); СписокСчетов.НоваяСтрока(); //Не выбран документ! СписокСчетов.Счет = ДобавляемыйСчет; СписокСчетов.Записать(); КонецЕсли; Записать(); ДобавитьВСписокСчет(ДобавляемыйСчет); КонецЕсли КонецПроцедуры
Правила форума