Отключение сравнения данных документа с данными документа основания в УТ 11.5

1. konsta2006 23.09.24 13:15 Сейчас в теме
Всех приветствую!
Помогите разобраться в какой процедуре проходит сверка данных ПН с данными заказа поставщику?
Нужно сделать чтобы ПН с измененными данными проводилась (УТ 11.5).
По теме из базы знаний
Найденные решения
11. konsta2006 27.09.24 14:27 Сейчас в теме
Если кому-то пригодится:
&После("ПередЗаписью")
Процедура ЭБСПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Попытка
		Если РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
			Если ЭтотОбъект.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Иванов Федор Евгеньевич") ИЛИ
				ЭтотОбъект.Контрагент.ИНН = 1111111111111
				Тогда
				
				СтрокаДляПоиска = ЭтотОбъект.Комментарий;
				Поиск1 = Лев(СтрокаДляПоиска, 18);
				СтрокаДляПоиска = СтрЗаменить(СтрокаДляПоиска, Поиск1, "");
				Поиск2 = СтрНайти(СтрокаДляПоиска, "ID_Склада_") - 1;
				СтрокаДляПоиска = Лев(СтрокаДляПоиска, Поиск2);
				
				ЭтотОбъект.ПоступлениеПоЗаказам = Истина;
				ЭтотОбъект.ЦенаВключаетНДС = Истина;
				
				Запрос = Новый Запрос;
				Запрос.Текст = 
				"ВЫБРАТЬ
				|	ЗаказПоставщику.Ссылка КАК Ссылка
				|ИЗ
				|	Документ.ЗаказПоставщику КАК ЗаказПоставщику
				|ГДЕ
				|	ЗаказПоставщику.Номер = &Номер
				|	И ЗаказПоставщику.Контрагент = &Контрагент";
				
				Запрос.УстановитьПараметр("Контрагент", ЭтотОбъект.Контрагент);
				Запрос.УстановитьПараметр("Номер", СтрокаДляПоиска);	
				РезультатЗапроса = Запрос.Выполнить();	
				ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
				Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
					ЭтотОбъект.ЗаказПоставщику = ВыборкаДетальныеЗаписи.Ссылка;
					ЭтотОбъект.Склад = ВыборкаДетальныеЗаписи.Ссылка.Склад;
					ЭтотОбъект.Контрагент = ВыборкаДетальныеЗаписи.Ссылка.Контрагент;
					ЭтотОбъект.Соглашение = ВыборкаДетальныеЗаписи.Ссылка.Соглашение;
					ЭтотОбъект.Партнер = ВыборкаДетальныеЗаписи.Ссылка.Партнер;
					
					 
					Для Каждого СтрокаТоваров Из ЭтотОбъект.Товары Цикл
						//ПроверкаНоменклатурыВЗаказеПоставщику(ВыборкаДетальныеЗаписи.Ссылка, СтрокаТоваров.Номенклатура);
						Если ПроверкаНоменклатурыВЗаказеПоставщику(ВыборкаДетальныеЗаписи.Ссылка, СтрокаТоваров.Номенклатура) = "Пусто" Тогда
							СтрокаТоваров.ЗаказПоставщику = ВыборкаДетальныеЗаписи.Ссылка;
							СтрокаТоваров.КодСтроки = 0;
							СтрокаТоваров.РасхождениеЗаказ = 1;																		
						Иначе
							СтрокаТоваров.ЗаказПоставщику = ВыборкаДетальныеЗаписи.Ссылка;
							СтрокаТоваров.КодСтроки = ПроверкаНоменклатурыВЗаказеПоставщику(ВыборкаДетальныеЗаписи.Ссылка, СтрокаТоваров.Номенклатура);
						КонецЕсли;	
					КонецЦикла;	
					
				КонецЦикла;
			КонецЕсли;	
		КонецЕсли;
	Исключение	
		//Сообщить("Документ проводится без заказа");
	КонецПопытки;
КонецПроцедуры



Функция ПроверкаНоменклатурыВЗаказеПоставщику(СсылкаНаЗаказ, ИскомаяНоменклатура)
	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ЗаказПоставщикуТовары.НомерСтроки КАК НомерСтроки,
	|	ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура
	|ИЗ
	|	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
	|ГДЕ
	|	ЗаказПоставщикуТовары.Номенклатура = &ИскомаяНоменклатура
	|	И ЗаказПоставщикуТовары.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("ИскомаяНоменклатура", ИскомаяНоменклатура);
	Запрос.УстановитьПараметр("Ссылка", СсылкаНаЗаказ);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Если РезультатЗапроса.Пустой() Тогда
		Возврат "Пусто"
	Иначе	
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл			 
			Возврат ВыборкаДетальныеЗаписи.НомерСтроки;	
		КонецЦикла;	
	КонецЕсли;
	
	
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Lenten 25 24.09.24 10:34 Сейчас в теме
3. user2033930 24.09.24 10:35 Сейчас в теме
4. Lenten 25 24.09.24 10:40 Сейчас в теме
(3) >сверка данных порядкового номера с данными заказа поставщику

а что это за объект в УТ такой? скиньте скриншот
7. konsta2006 24.09.24 10:54 Сейчас в теме
(4) ПН - это приходная накладная. в ней товары нужно изменять при подвязанном заказе поставщику.
8. Lenten 25 24.09.24 10:59 Сейчас в теме
(7)
7. konsta2006 24.09.24 10:54
(4) ПН - это приходная накладная. в ней товары нужно изменять при подвязанном заказом поставщику.


при проведении заказа поставщику получайте приходную накладную и меняйте. Но обычно так никто не делает. Заказ отображает намерение что-то купить, а приходная накладная отображает что пришло по факту.
9. konsta2006 24.09.24 11:04 Сейчас в теме
(8) у нас эти документы отправляются и получаются через бизнес-сеть и потом накладная отличающаяся от заказа не перепроводится. я позже проверю - отпишусь (сейчас RDP заглючило). я думал может кто-то сталкивался. вообще я там нашел в модуле объекта приходной накладной процедуру проверки соответствия товаров (точно название не помню). просто ее придется в расширении заменять - не очень хочется
5. Lenten 25 24.09.24 10:45 Сейчас в теме
(3) >Отключение сравнения данных документа с данными документа основания в УТ 11.5

возможно вам нужна обработка заполнения в модуле объекта того документа, который заполняется
10. konsta2006 25.09.24 14:46 Сейчас в теме
(5) до обработки заполнения не доходит - сразу ошибку выбивает. есть еще варианты?)
6. konsta2006 24.09.24 10:52 Сейчас в теме
ПН - это приходная накладная. она должна изменяться с подвязанным заказом поставщику.
11. konsta2006 27.09.24 14:27 Сейчас в теме
Если кому-то пригодится:
&После("ПередЗаписью")
Процедура ЭБСПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Попытка
		Если РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
			Если ЭтотОбъект.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Иванов Федор Евгеньевич") ИЛИ
				ЭтотОбъект.Контрагент.ИНН = 1111111111111
				Тогда
				
				СтрокаДляПоиска = ЭтотОбъект.Комментарий;
				Поиск1 = Лев(СтрокаДляПоиска, 18);
				СтрокаДляПоиска = СтрЗаменить(СтрокаДляПоиска, Поиск1, "");
				Поиск2 = СтрНайти(СтрокаДляПоиска, "ID_Склада_") - 1;
				СтрокаДляПоиска = Лев(СтрокаДляПоиска, Поиск2);
				
				ЭтотОбъект.ПоступлениеПоЗаказам = Истина;
				ЭтотОбъект.ЦенаВключаетНДС = Истина;
				
				Запрос = Новый Запрос;
				Запрос.Текст = 
				"ВЫБРАТЬ
				|	ЗаказПоставщику.Ссылка КАК Ссылка
				|ИЗ
				|	Документ.ЗаказПоставщику КАК ЗаказПоставщику
				|ГДЕ
				|	ЗаказПоставщику.Номер = &Номер
				|	И ЗаказПоставщику.Контрагент = &Контрагент";
				
				Запрос.УстановитьПараметр("Контрагент", ЭтотОбъект.Контрагент);
				Запрос.УстановитьПараметр("Номер", СтрокаДляПоиска);	
				РезультатЗапроса = Запрос.Выполнить();	
				ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
				Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
					ЭтотОбъект.ЗаказПоставщику = ВыборкаДетальныеЗаписи.Ссылка;
					ЭтотОбъект.Склад = ВыборкаДетальныеЗаписи.Ссылка.Склад;
					ЭтотОбъект.Контрагент = ВыборкаДетальныеЗаписи.Ссылка.Контрагент;
					ЭтотОбъект.Соглашение = ВыборкаДетальныеЗаписи.Ссылка.Соглашение;
					ЭтотОбъект.Партнер = ВыборкаДетальныеЗаписи.Ссылка.Партнер;
					
					 
					Для Каждого СтрокаТоваров Из ЭтотОбъект.Товары Цикл
						//ПроверкаНоменклатурыВЗаказеПоставщику(ВыборкаДетальныеЗаписи.Ссылка, СтрокаТоваров.Номенклатура);
						Если ПроверкаНоменклатурыВЗаказеПоставщику(ВыборкаДетальныеЗаписи.Ссылка, СтрокаТоваров.Номенклатура) = "Пусто" Тогда
							СтрокаТоваров.ЗаказПоставщику = ВыборкаДетальныеЗаписи.Ссылка;
							СтрокаТоваров.КодСтроки = 0;
							СтрокаТоваров.РасхождениеЗаказ = 1;																		
						Иначе
							СтрокаТоваров.ЗаказПоставщику = ВыборкаДетальныеЗаписи.Ссылка;
							СтрокаТоваров.КодСтроки = ПроверкаНоменклатурыВЗаказеПоставщику(ВыборкаДетальныеЗаписи.Ссылка, СтрокаТоваров.Номенклатура);
						КонецЕсли;	
					КонецЦикла;	
					
				КонецЦикла;
			КонецЕсли;	
		КонецЕсли;
	Исключение	
		//Сообщить("Документ проводится без заказа");
	КонецПопытки;
КонецПроцедуры



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

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