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

1. applesound 1 13.01.20 15:44 Сейчас в теме
Добрый день.
Перезаполняю табличную часть документа ТаможеннаяДекларацияИмпорт.Товары из документа ПоступлениеТоваровУслуг
В Модуле формы документа обращаюсь к критериям отбора. Планирую получить ссылку на декларацию и перезаполнить табличную чать.
Вопрос:
Верно ли начал решение?

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

	ТекущийДокумент = ТекущийОбъект;
	РезультатФункции = Новый Массив;
	Если Метаданные.КритерииОтбора.СвязанныеДокументы.Тип.СодержитТип(ТипЗнч("Таможенная декларация на импорт"))Тогда
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ
		|	СвязанныеДокументы.Ссылка КАК Ссылка
		|ИЗ
		|	КритерийОтбора.СвязанныеДокументы(&ЗначениеКритерияОтбора) КАК СвязанныеДокументы";
		Запрос.УстановитьПараметр("ЗначениеКритерияОтбора",ТекущийДокумент);
		РазультатЗапроса = Запрос.Выполнить();
		ВыборкаДетальныеЗаписи = РазультатЗапроса.Выбрать();
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			РезультатФункции.Добавить(ВыборкаДетальныеЗаписи.Ссылка);		
		КонецЦикла;
	КонецЕсли;
	
	КонецПроцедуры
Показать
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 13.01.20 16:04 Сейчас в теме
5. applesound 1 13.01.20 17:45 Сейчас в теме
(2)При проведении док. Поступление - перезаполнить табличную часть связанного с ним док. Таможенная декларация. Причина: Создали Поступление, на основании создали Таможенную декларацию - Всё ОК. Одумались, поменяли в поступлении некоторые позиции, за декларацию забыли. В итоге имеем: Декларацию не соответствует поступлению.
3. coollerinc 185 13.01.20 16:34 Сейчас в теме
Вот это зачем?
"Если Метаданные.КритерииОтбора.СвязанныеДокументы.Тип.СодержитТип(ТипЗнч("Таможенная декларация на импорт"))Тогда"


да все нормально, единственное у вас в связанных документах может быть много других типов документов. Я бы обращался напрямую к таблице ТаможеннаяДекларацияИмпорт
4. applesound 1 13.01.20 17:40 Сейчас в теме
(3)
Вот это зачем?
"Если Метаданные.КритерииОтбора.СвязанныеДокументы.Тип.СодержитТип(ТипЗнч("Таможенная декларация на импорт"))Тогда

КритерииОтбора содержится много вариантов документов, этой строкой пытаюсь типизировать отбор, только Таможенная декларация на импорт
7. coollerinc 185 13.01.20 18:00 Сейчас в теме
(4)нет, ни какой типизации не будет, у вас всегда будет истина
6. Гарин 1 13.01.20 17:56 Сейчас в теме
В Таможенной декларации в ТЧ Товары есть реквизит ДокументПоступления, запрос нужно не через Критерии отбора делать, а к ТЧ документа ТаможеннаяДекларацияИмпорт, в условии запроса указать ДокументПоступления
alex-l19041; +1 Ответить
8. applesound 1 14.01.20 12:04 Сейчас в теме
(6)
Далаю следующем образом, ошибок много. Если есть возможность направьте.

Документ ПоступлениеТоваровУслуг в Модуле формы:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ТаможеннаяДекларацияИмпортТовары.НомерСтроки КАК НомерСтроки,
	|	ТаможеннаяДекларацияИмпортТовары.Номенклатура КАК Номенклатура,
	|	ТаможеннаяДекларацияИмпортТовары.Характеристика КАК Характеристика,
	|	ТаможеннаяДекларацияИмпортТовары.Упаковка КАК Упаковка,
	|	ТаможеннаяДекларацияИмпортТовары.КоличествоУпаковок КАК КоличествоУпаковок,
	|	ТаможеннаяДекларацияИмпортТовары.Количество КАК Количество,
	|	ТаможеннаяДекларацияИмпортТовары.СуммаНДС КАК СуммаНДС,
	|	ТаможеннаяДекларацияИмпортТовары.СтранаПроисхождения КАК СтранаПроисхождения,
	|	ТаможеннаяДекларацияИмпортТовары.НомерГТД КАК НомерГТД
	|ИЗ
	|	Документ.ТаможеннаяДекларацияИмпорт.Товары КАК ТаможеннаяДекларацияИмпортТовары
	|ГДЕ
	|	ТаможеннаяДекларацияИмпортТовары.Ссылка = &Ссылка
	|	И ТаможеннаяДекларацияИмпортТовары.Ссылка.Проведен = ИСТИНА"
	
	Запрос.УстановитьПараметр("Ссылка",ТекущийОбъект.Ссылка);
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	Для каждого ТекСтрока ИЗ ВыборкаДетальныеЗаписи Цикл
		ТекСтрока.НомерСтроки = ВыборкаДетальныеЗаписи.НомерСтроки;
		ТекСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
		ТекСтрока.Характеристика = ВыборкаДетальныеЗаписи.Характеристика;
		ТекСтрока.Упаковка = ВыборкаДетальныеЗаписи.Упаковка;
		ТекСтрока.Количество = ВыборкаДетальныеЗаписи.Количество;
		ТекСтрока.СуммаНДС = ВыборкаДетальныеЗаписи.СуммаНДС;
		ТекСтрока.СтранаПроисхождения = ВыборкаДетальныеЗаписи.СтранаПроисхождения;
		ТекСтрока.НомерГТД = ВыборкаДетальныеЗаписи.НомерГТД;
	
	КонецЦикла;

КонецПроцедуры
Показать
11. applesound 1 14.01.20 15:14 Сейчас в теме
(8)Нашёл ошибку.
Вместо

|ГДЕ 
| ТаможеннаяДекларацияИмпортТовары.Ссылка = &Ссылка 
| И ТаможеннаяДекларацияИмпортТовары.Ссылка.Проведен = ИСТИНА" 


Нужно
|ГДЕ
| ТаможеннаяДекларацияИмпортТовары.Ссылка.Проведен = ИСТИНА
| И ТаможеннаяДекларацияИмпортТовары.Ссылка.ПоступлениеТоваров = &ПоступлениеТоваров"
9. Гарин 1 14.01.20 14:27 Сейчас в теме
"ВЫБРАТЬ
|	ТаможеннаяДекларацияИмпортТовары.НомерСтроки КАК НомерСтроки,
|	ТаможеннаяДекларацияИмпортТовары.Номенклатура КАК Номенклатура,
|	ТаможеннаяДекларацияИмпортТовары.Характеристика КАК Характеристика,
|	ТаможеннаяДекларацияИмпортТовары.Упаковка КАК Упаковка,
|	ТаможеннаяДекларацияИмпортТовары.КоличествоУпаковок КАК КоличествоУпаковок,
|	ТаможеннаяДекларацияИмпортТовары.Количество КАК Количество,
|	ТаможеннаяДекларацияИмпортТовары.СуммаНДС КАК СуммаНДС,
|	ТаможеннаяДекларацияИмпортТовары.СтранаПроисхождения КАК СтранаПроисхождения,
|	ТаможеннаяДекларацияИмпортТовары.НомерГТД КАК НомерГТД
|ИЗ
|	Документ.ТаможеннаяДекларацияИмпорт.Товары КАК ТаможеннаяДекларацияИмпортТовары
|ГДЕ
|	ТаможеннаяДекларацияИмпортТовары.ДокументПоступления = &Ссылка
|	И ТаможеннаяДекларацияИмпортТовары.Ссылка.Проведен = ИСТИНА"
Показать


поправил запрос
applesound; +1 Ответить
10. Гарин 1 14.01.20 14:28 Сейчас в теме
а в цикле неправильный код, совсем
к сожалению нет времени написать как надо
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)