Отключение контроля остатков по организациям в УНФ 1.6

В УНФ клиент попросил отключить контроль остатков по организациям, чтобы остатки контролировались только по складу, а не по организации.

Я начал искать, где контролируются остатки и обнаружил странное и страшное — для каждого документа прописывается свой контроль остатков в модуле менеджера документа в процедуре ВыполнитьКонтроль.

Поэтому тестово сделал для реализации. Сразу за текстом запроса корректирую текст запроса:

		//Осипов 2023-08-29 отключаем контроль остатков по организациям
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияПрослеживаемыеТоварыИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияЗапасыПринятыеВРазрезеГТДИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияРасчетыСПокупателямиИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "РасчетыСПокупателямиОстатки.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияПотребностьВЗапасахИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПотребностьВЗапасахОстатки.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ЗаказыПоставщикамОстатки.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияЗаказыПоставщикамИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ЗаказыПокупателейОстатки.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияЗаказыПокупателейИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ЗапасыПринятыеОстатки.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияЗапасыПринятыеИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ЗапасыПереданныеОстатки.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияЗапасыПереданныеИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияЗапасыНаСкладахИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ДвиженияЗапасыИзменение.Организация", "ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)");

Потом еще дополнительно меняю параметр МассивОрганизаций, устанавливаю пустую организацию:

		// Интеркампани
		Запрос.УстановитьПараметр("МассивОрганизаций",                         РегистрыСведений.НастройкаПередачиТоваровМеждуОрганизациями.ПолучитьСписокОрганизацийДляОстатков(ДополнительныеСвойства.ДляПроведения.Организация)
			);
		Запрос.УстановитьПараметр("ПередачаТоваровМеждуОрганизациями", ДополнительныеСвойства.УчетнаяПолитика.ПередачаТоваровМеждуОрганизациями);
		// Конец Интеркампани                                                  
		
		//Осипов - указываем пустую организацию
		М = Новый Массив(); М.Добавить(Справочники.Организации.ПустаяСсылка());
		Запрос.УстановитьПараметр("МассивОрганизаций", М);
		
		МассивРезультатов = Запрос.ВыполнитьПакет();

По идее, должно работать, попросил клиента потестировать.

Среда: УНФ 1.6.26.172 Объем: 1.5 час

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *