Как передать комментарий из одного документа в другой

1. _Help_ 15.10.20 16:32 Сейчас в теме
Есть документ - "Заказ поставщику". У него на форме есть поле комментарий. Этот документ передаем через ЭДО. Далее при загрузке полученного документа формируется документ - "Заказ покупателя". Нужно чтобы в него подтягивался комментарий из "Заказа поставщику"
Я так понимаю что нужно создать запрос в процедуре ПриСозданииНаСервере который возьмет данные комментария №1 и добавит их в комментарий №2, но как его написать не понимаю. Прошу вашей помощи
Конфигурация УНФ Ред. 1.6
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. alex-l19041 8 15.10.20 16:48 Сейчас в теме
(1)
передаем через ЭДО
- маловероятно что через ЭДО передается комментарий...
2. FatPanzer 7 15.10.20 16:35 Сейчас в теме
Ну во первых, вам надо определиться - каким образом вы будете искать документ ЗаказПоставщику? Какие данные для этого вам приходят из ЭДО? Сможете однозначно идентифицировать заказ поставщику по данным документа ЭДО?
5. _Help_ 15.10.20 16:59 Сейчас в теме
(2)Я пробовал получить значение поля комментарий документа ЗаказПоставщику запросом
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗаказПоставщику.Комментарий КАК Комментарий,
		|	ЗаказПоставщику.Ссылка КАК Ссылка
		|ИЗ
		|	Документ.ЗаказПоставщику КАК ЗаказПоставщику
		|ГДЕ
		|	ЗаказПоставщику.Комментарий ПОДОБНО &Комментарий";
	
	Запрос.УстановитьПараметр("Комментарий", Объект.Комментарий);
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 ЭтаФорма.Объект.Комментарий = ВыборкаДетальныеЗаписи.Комментарий;
	КонецЦикла;
Показать

Но он не отрабатывает.
Так же из документа заказ покупателя подтягивается сумма документа, номенклатура и НДС
6. FatPanzer 7 15.10.20 17:04 Сейчас в теме
(5) Вы сами понимаете, что пытаетесь сделать? Вы пытаетесь искать комментарий из документа ЗаказКлиента во ВСЕХ документах ЗаказПоставщику. И если вы вдруг его найдете, то запишете его в документ ЗаказКлиента... Вы ищете одинаковые пустые комментарии. А потом еще и перебираете их в цикле для того, чтобы этими пустыми комментариями подменить уже существующий пустой комментарий...

Если не верите - уточните, что у вас находится в этой строке в Объект.Комментарий?
Запрос.УстановитьПараметр("Комментарий", Объект.Комментарий);
8. _Help_ 15.10.20 17:11 Сейчас в теме
10. FatPanzer 7 15.10.20 17:12 Сейчас в теме
(8) Правильно. И именно его вы и пытаетесь искать в документах заказов поставщикам...
11. _Help_ 15.10.20 17:28 Сейчас в теме
Хорошо. Я написал запрос на форме документа заказПокупателя в процедуре ПриСозданииНаСервере. Это правильно?
12. FatPanzer 7 15.10.20 17:33 Сейчас в теме
(11) Нет, неправильно. Он должен быть там, где вы формируете новый документ на основе документа ЭДО. Что там у вас? Обработка какая-то наверное, или типовое заполнение с помощью ОбработкаЗаполнения(), или что-то такое.
alex-l19041; +1 Ответить
9. FatPanzer 7 15.10.20 17:11 Сейчас в теме
(5) Вам в качестве параметров поиска в запрос надо передавать некие идентификационные данные из ЭДО... Номер заказа поставщику, например.
alex-l19041; +1 Ответить
14. _Help_ 16.10.20 13:17 Сейчас в теме
(9)Изменил запрос. В параметры добавил номер документа ЗаказПоставщикам и таким образом комментарий удалось перенести. Сейчас загвоздка в том, что запросом можно перенести данные документа номер которого указан в параметрах. Как можно сделать выборку по текущему документу заказПоставщикам?
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	ЗаказПоставщику.Комментарий КАК Комментарий,
        |	ЗаказПоставщику.Ссылка КАК Ссылка,
        |	ЗаказПоставщику.Номер КАК Номер
        |ИЗ
        |	Документ.ЗаказПоставщику КАК ЗаказПоставщику
        |ГДЕ
        |	ЗаказПоставщику.Комментарий ПОДОБНО &Комментарий
        |	И ЗаказПоставщику.Номер = &Номер";
    
    Запрос.УстановитьПараметр("Комментарий", "%"+Объект.Комментарий+"%");
	Запрос.УстановитьПараметр("Номер", "МСНФ-001887");
    РезультатЗапроса = Запрос.Выполнить();
	
		
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Объект.Комментарий =  ВыборкаДетальныеЗаписи.Комментарий;
		Объект.Номер = ВыборкаДетальныеЗаписи.Номер;
	КонецЦикла;
Показать
15. FatPanzer 7 16.10.20 13:22 Сейчас в теме
(14) А какой у вас текущий? В этом же весь и смысл - найти его, и из него взять необходимые данные.
Изначально не комментарий надо искать подходящий, а правильный документ ЗаказПоставщику! Сразу же вам об этом сказал в (2).
13. Max_Max 16.10.20 04:20 Сейчас в теме
(5)Для оператора "Подобно" в параметре запроса нужно писать
Запрос.УстановитьПараметр("Комментарий", "%"+Объект.Комментарий+"%")
4. FatPanzer 7 15.10.20 16:51 Сейчас в теме
Как-то у вас все наоборот - обычно на основании ЗаказаКлиента формируют ЗаказПоставщику...
7. Азбука Морзе 88 15.10.20 17:05 Сейчас в теме
В Объект есть и комментарий и ссылка и НДС и номенклатура.
Оставьте свое сообщение
Вопросы с вознаграждением