Подскажите как записать документ

1. user1979322 20.06.24 11:43 Сейчас в теме
Почему то в документе не записывается табличная часть. Имеется 2-ва справочника и данные из них нужно записать в разные реквезиты, т.е Столбец1=Справочнику1, а Столбец2=Справочнику2


ДокНов=Документы.ПодразделенияСценарии.СоздатьДокумент();
ДокНов.Дата=ТекущаяДата();


ВыборкаПодразделения=Справочники.Подразделения.Выбрать();
ВыборкаСценарии=Справочники.Сценарии.Выбрать();

// Определяю мах кол-во элементов в справочнике Сценариев
ВсегоЭлементовСценарии=0;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| КОЛИЧЕСТВО(ССЫЛКА) КАК ВсегоЭлементов
|ИЗ
| Справочник.Сценарии КАК Сценарии";
РезультатЗапросаСценарии=Запрос.Выполнить().Выгрузить();
ВсегоЭлементовСценарии=ВсегоЭлементовСценарии+РезультатЗапро­саСценарии[0].ВсегоЭлементов;

// Определяю мах кол-во элементов в справочнике Подраздиления
ВсегоЭлементовПодразделения=0;
ЗапросПодразделения=Новый Запрос;
ЗапросПодразделения.Текст="ВЫБРАТЬ
| КОЛИЧЕСТВО(ССЫЛКА) КАК ВсегоЭлементов
|ИЗ
| Справочник.Подразделения КАК Подразделения";
РезультатЗапросаПодразделения=ЗапросПодразделения.Выполнить().Выгрузить();
ВсегоЭлементовПодразделения=ВсегоЭлементовПодразделения+Резу­льтатЗапросаПодразделения[0].ВсегоЭлементов;


// Перебираю справочник Подраздиления
Если(ВсегоЭлементовПодразделения>=ВсегоЭлементовСценарии) Тогда

НомерСтрокиСчитывания=1;
Пока ВыборкаПодразделения.Следующий() Цикл

НоваяСтрока=ДокНов.Сценарии.Добавить();

переменПодразделение=ВыборкаПодразделения;

ДокНов.Подразделения=переменПодразделение; // по условию задачи реквизит таб части "ПодразделениеТаб"должен заполняться реквизитом "Подразделение" из шапки документа

// Заполняю табличную часть Подразделения
НоваяСтрока.ПодразделениеТаб=переменПодразделение;


// Заполняю Сценарии
Если НомерСтрокиСчитывания<=ВсегоЭлементовСценарии Тогда
переменСценарии=Справочники.Подразделения.НайтиПоКоду(Формат(НомерСтрокиСчитывания,"ЧЦ=9; ЧРГ=; ЧВН=; ЧГ=; ЧФ=Ч"));
НоваяСтрока.Сценарии=переменСценарии;
НомерСтрокиСчитывания=НомерСтрокиСчитывания+1;
КонецЕсли;


КонецЦикла;

Иначе

НомерСтрокиСчитывания=1;
Пока ВыборкаСценарии.Следующий() Цикл

НоваяСтрока=ДокНов.Сценарии.Добавить();

переменСценарии=ВыборкаСценарии;

// Заполняю табличную часть Сценарии
НоваяСтрока.Сценарии=переменСценарии;


// Заполняю Подразделение
Если НомерСтрокиСчитывания<=ВсегоЭлементовПодразделения Тогда
переменПодразделение=Справочники.Подразделения.НайтиПоКоду(Формат(НомерСтрокиСчитывания,"ЧЦ=9; ЧРГ=; ЧВН=; ЧГ=; ЧФ=Ч"));
НоваяСтрока.ПодразделениеТаб=переменПодразделение;
ДокНов.Подразделения=переменПодразделение; // по условию задачи реквизит таб части "ПодразделениеТаб"должен заполняться реквизитом "Подразделение" из шапки документа

НомерСтрокиСчитывания=НомерСтрокиСчитывания+1;
КонецЕсли;


КонецЦикла;


КонецЕсли;
ДокНов.Записать();
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. Anton_new01 20.06.24 13:21 Сейчас в теме
(5)
плюс присваивает другой тип. СправочникВыборка - а надо СправочникСсылку.

Пока ВыборкаПодразделения.Следующий() Цикл
	
	НоваяСтрока = ДокНов.Сценарии.Добавить();
	
	//переменПодразделение=ВыборкаПодразделения;
	
	ДокНов.Подразделения = ВыборкаПодразделения.Ссылка; // по условию задачи реквизит таб части "ПодразделениеТаб"должен заполняться реквизитом "Подразделение" из шапки документа
	
	// Заполняю табличную часть Подразделения
	НоваяСтрока.ПодразделениеТаб = ВыборкаПодразделения.Ссылка;
	
	// Заполняю Сценарии
	Если НомерСтрокиСчитывания <= ВсегоЭлементовСценарии Тогда
		переменСценарии = Справочники.Сценарии.НайтиПоКоду(Формат(НомерСтрокиСчитывания,"ЧЦ=9; ЧРГ=; ЧВН=; ЧГ=; ЧФ=Ч"));
		НоваяСтрока.Сценарии = переменСценарии;
		НомерСтрокиСчитывания = НомерСтрокиСчитывания+1;
	КонецЕсли;
	
КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 20.06.24 12:11 Сейчас в теме
(1)
переменСценарии=Справочники.Подразделения.НайтиПоКоду(Формат(НомерСтрокиСчитывания,"ЧЦ=9; ЧРГ=; ЧВН=; ЧГ=; ЧФ=Ч"));
НоваяСтрока.Сценарии=переменСценарии;
3. starjevschik 20.06.24 12:41 Сейчас в теме
преподаватель профнепригоден. Надо его менять, не годится. Не может объяснить элементарные вещи.
Пока ВыборкаПодразделения.Следующий() Цикл

НоваяСтрока=ДокНов.Сценарии.Добавить();

переменПодразделение=ВыборкаПодразделения;

ДокНов.Подразделения=переменПодразделение; // по условию задачи реквизит таб части "ПодразделениеТаб"должен заполняться реквизитом "Подразделение" из шапки документа

// Заполняю табличную часть Подразделения
НоваяСтрока.ПодразделениеТаб=переменПодразделение; 
Показать
4. user1979322 20.06.24 12:52 Сейчас в теме
Спасибо за ответ, но я не понял где ошибка
5. Sashares 35 20.06.24 12:59 Сейчас в теме
(4)Не в том справочнике ищешь сценарий.
6. Anton_new01 20.06.24 13:21 Сейчас в теме
(5)
плюс присваивает другой тип. СправочникВыборка - а надо СправочникСсылку.

Пока ВыборкаПодразделения.Следующий() Цикл
	
	НоваяСтрока = ДокНов.Сценарии.Добавить();
	
	//переменПодразделение=ВыборкаПодразделения;
	
	ДокНов.Подразделения = ВыборкаПодразделения.Ссылка; // по условию задачи реквизит таб части "ПодразделениеТаб"должен заполняться реквизитом "Подразделение" из шапки документа
	
	// Заполняю табличную часть Подразделения
	НоваяСтрока.ПодразделениеТаб = ВыборкаПодразделения.Ссылка;
	
	// Заполняю Сценарии
	Если НомерСтрокиСчитывания <= ВсегоЭлементовСценарии Тогда
		переменСценарии = Справочники.Сценарии.НайтиПоКоду(Формат(НомерСтрокиСчитывания,"ЧЦ=9; ЧРГ=; ЧВН=; ЧГ=; ЧФ=Ч"));
		НоваяСтрока.Сценарии = переменСценарии;
		НомерСтрокиСчитывания = НомерСтрокиСчитывания+1;
	КонецЕсли;
	
КонецЦикла;
Показать
7. user1979322 21.06.24 07:46 Сейчас в теме
(6) Спасибо, помогло, но почему СправочникСсылку?
8. user2033930 21.06.24 07:51 Сейчас в теме
(7) На этот вопрос никто не сможет ответить...
9. Anton_new01 21.06.24 08:34 Сейчас в теме
(7)
когда вы присваиваете значения типированные - они должны соответствовать определенному тупу данных.
например если вы приваивате строковую переменную - это строка и если вытуда пихате "123456" - то это строка такая, а не число. и методы работы с ним как со строкой. т.е. "123456" + "1" = "1234561",
а с числами было бы: 123456+1 = 123457

соответственно и с любыми другими типами данных аналогично.
у вас в документе ПодразделенияСценарии в табличной части Сценарии в колонке Подразделения - указан Тип данных СправочникСсылка.Подразделения
И система ни какие другие типы данных просто "не поймет" и приведет к пустой ссылке.

в вашем случае вы именно другой тип данных(СправочникВыборка.Подразделения) пытались туда вставить.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот