Расширения конфигурации и Контроль несогласованных изменений

0. 66 21.12.15 13:30 Сейчас в теме
Как обойти "контроль несогласованных изменений" при добавлении своих обработчиков в "расширения конфигурации".

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dock 44 27.12.15 03:01 Сейчас в теме
Расширения - хороший инструмент...
Но вот почему у 1с без костылей никак ?...
2. ben_art 13 22.04.16 12:49 Сейчас в теме
Не могли бы вы подсказать , что сделать если после переопределения ошибка все равно воспроизводится , но только после записи документа ?
в не записанном или в вновь открытом нет ошибки.
Вопрос решился добавлением переопределения в процедуру "после записи"
3. nytlenc 28.09.16 07:59 Сейчас в теме
4. alexex 44 11.05.17 03:29 Сейчас в теме
Подробно, спасибо!
p.s. Аналогично допиливаю доп. ед. измерения для УТ 11, писал в тех. поддержку 1с, они не понимают для чего нужны доп. ед. изм., просили ПОЛНОСТЬЮ описать бизнес процесс предприятия, по мне быстрее допилить УТ чем вести бесполезную переписку и доказывать для чего необходим данный функционал.
5. rif-nrr 13 22.06.17 18:43 Сейчас в теме
Спасибо за отличный материал! Очень помогло, только пришлось команду УстановитьВыполнениеПослеОбработчиковСобытия заменить на саму процедуру Расш1_ПереопределитьОбработчикиПриИзменении - ругается что можно только из самой формы такое делать, а не из расширения
6. Suxar 31.08.17 16:28 Сейчас в теме
Спасибо за статью, кое что прояснилось.
Но подобные проблемы могут возникать не только при работе с расширениями.

Я правда по другому сделал, дописал КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменени­и()
7. sergey512 31 05.02.19 15:26 Сейчас в теме
Можно сделать проще. Переопределить функцию УФ УстановитьДоступностьЭлементовПоСтатусуСервер() используя тип вызова &Вместо. Скопировать весь код из переопределяемой функции и закомментить те элементы, контроль по которым необходимо отключить. Переопределить еще одну функцию УФ КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменени­и(Элемент) используя тип вызова &Вместо. Есть у такого способа один минус: при обновлении конфигурации нужно будет обновлять вручную переопределенную функцию УстановитьДоступностьЭлементовПоСтатусуСервер(). Проверяно на ERP 2.4.6.160.

&НаСервере
&Вместо("УстановитьДоступностьЭлементовПоСтатусуСервер")
Процедура st_УстановитьДоступностьЭлементовПоСтатусуСервер()
	// Вставить содержимое метода.
	//ПродолжитьВызов();
	
	УстановитьПодписку = Ложь;
	
	Если Объект.Статус = Перечисления.СтатусыЗаказовКлиентов.НеСогласован И ИспользоватьСтатусы Тогда
		
		УстановитьПодписку = Ложь;
		
	ИначеЕсли (Объект.Статус = Перечисления.СтатусыЗаказовКлиентов.НеСогласован И Не ИспользоватьСтатусы) 
		ИЛИ Объект.Статус = Перечисления.СтатусыЗаказовКлиентов.КОбеспечению
		ИЛИ Объект.Статус = Перечисления.СтатусыЗаказовКлиентов.КОтгрузке 
		ИЛИ Объект.Статус = Перечисления.СтатусыЗаказовКлиентов.Закрыт Тогда
		
			УстановитьПодписку = Объект.Согласован;
		
	КонецЕсли;
	
	МассивЭлементов = Новый Массив;
	
	// Элементы управления шапки
	МассивЭлементов.Добавить("Дата");
	МассивЭлементов.Добавить("Партнер");
	МассивЭлементов.Добавить("Соглашение");
	МассивЭлементов.Добавить("Валюта");
	МассивЭлементов.Добавить("ЦенаВключаетНДС");
	МассивЭлементов.Добавить("НалогообложениеНДС");
	МассивЭлементов.Добавить("Организация");
	МассивЭлементов.Добавить("Контрагент");
	МассивЭлементов.Добавить("Договор");
	МассивЭлементов.Добавить("Склад");
	МассивЭлементов.Добавить("ЖелаемаяДатаОтгрузки");
	МассивЭлементов.Добавить("НеОтгружатьЧастями");
	МассивЭлементов.Добавить("ДатаОтгрузки");
	МассивЭлементов.Добавить("ДатаСогласования");
	МассивЭлементов.Добавить("ХозяйственнаяОперация");
	МассивЭлементов.Добавить("КартаЛояльности");
	МассивЭлементов.Добавить("ВернутьМногооборотнуюТару");
	МассивЭлементов.Добавить("СрокВозвратаМногооборотнойТары");
	МассивЭлементов.Добавить("ТребуетсяЗалогЗаТару");
	
	// Элементы управления, связанные с таблицей Товары
	МассивЭлементов.Добавить("ТоварыНоменклатура");
	МассивЭлементов.Добавить("ТоварыХарактеристика");
	//МассивЭлементов.Добавить("ТоварыКоличествоУпаковок");  
	МассивЭлементов.Добавить("ТоварыУпаковка");
	МассивЭлементов.Добавить("ТоварыВидЦены");
	//МассивЭлементов.Добавить("ТоварыЦена");
	МассивЭлементов.Добавить("ТоварыСтавкаНДС");
	МассивЭлементов.Добавить("ТоварыПроцентРучнойСкидки");
	МассивЭлементов.Добавить("ТоварыСуммаРучнойСкидки");
	МассивЭлементов.Добавить("ТоварыСумма");
	МассивЭлементов.Добавить("ТоварыСуммаНДС");
	МассивЭлементов.Добавить("ТоварыСодержание");
	
	// Элементы управления шапки
	МассивЭлементов.Добавить("Товары;ПередНачаломДобавления,ПередУдалением;ТоварыДатаОтгрузки");
	
	МассивЭлементов.Добавить("ТоварыКонтекстноеМенюДобавить");
	МассивЭлементов.Добавить("ТоварыКонтекстноеМенюСкопировать");
	МассивЭлементов.Добавить("ТоварыКонтекстноеМенюУдалить");
	
	МассивЭлементов.Добавить("ТоварыДобавить");
	МассивЭлементов.Добавить("ТоварыИзменить");
	МассивЭлементов.Добавить("ТоварыСкопировать");
	МассивЭлементов.Добавить("ТоварыУдалить");
	
	МассивЭлементов.Добавить("ТоварыОткрытьПодбор");
	МассивЭлементов.Добавить("ТоварыДополнитьМногооборотнойТарой");
	МассивЭлементов.Добавить("ТоварыПоискПоШтрихкоду");
	МассивЭлементов.Добавить("ТоварыЗагрузитьДанныеИзТСД");
	МассивЭлементов.Добавить("ТоварыЗаполнитьСкладВВыделенныхСтроках");
	МассивЭлементов.Добавить("ТоварыЗагрузитьИзВнешнегоФайла");
	МассивЭлементов.Добавить("ТоварыСоставНабора");
	
	МассивЭлементов.Добавить("ТоварыЗаполнитьЦеныПоСоглашению");
	МассивЭлементов.Добавить("ТоварыЗаполнитьЦеныВыделенныхСтрокПоВидуЦен");
	
	МассивЭлементов.Добавить("СчитатьКартуЛояльности");
	МассивЭлементов.Добавить("СчитатьКартуЛояльностиКлиент");
	МассивЭлементов.Добавить("КартаЛояльности");
	МассивЭлементов.Добавить("ТоварыРассчитатьСкидкиНаценки");
	МассивЭлементов.Добавить("ТоварыОтменитьРучныеСкидки");
	МассивЭлементов.Добавить("ТоварыНазначитьРучнуюСкидку");
	МассивЭлементов.Добавить("ТоварыНазначитьРучнуюСкидкуВыделенныхСтрок");
	МассивЭлементов.Добавить("ТоварыНазначитьАвтоматическиеСкидки");
	
	ОбщегоНазначенияУТ.УстановитьПодпискуНаСобытияИзмененияЭлементовФормы(ЭтаФорма, МассивЭлементов, УстановитьПодписку);
	
КонецПроцедуры

&НаКлиенте
&Вместо("КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменен­ии")
Процедура st_КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзмен­ении(Элемент)
	
	ПродолжитьСтандартныйВызов = Истина;
	
	Если Элемент.Имя = "Товарыst_КоличествоУпаковокПлан" Тогда
		st_Товарыst_КоличествоУпаковокПланПриИзмененииВместо(Элемент);
		ПродолжитьСтандартныйВызов = Ложь;
		
	ИначеЕсли Элемент.Имя = "Товарыst_Цена" Тогда
		st_Товарыst_ЦенаПриИзмененииВместо(Элемент);
		ПродолжитьСтандартныйВызов = Ложь;

	КонецЕсли;

	Если ПродолжитьСтандартныйВызов Тогда
		ПродолжитьВызов(Элемент);
	КонецЕсли;	
	
КонецПроцедуры
Показать
8. a_v_u 66 05.02.19 21:05 Сейчас в теме
(7) теперь да, можно проще, данный функционал появился кажется начиная с 8.3.10 или выше, раньше не было.
9. AllexSoft 10.12.19 12:30 Сейчас в теме
Зачем вообще нужен данный функционал Контроль несогласованных изменений? Ну например у нас отключено использование статусов в настройках.. какой смысл в этом всем? Выпилил этот бред вообще из нужных форм.
10. programmarket 28.05.21 12:22 Сейчас в теме
Из-а подобного бреда формы открываются так долго, что успеваешь попить чай.
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Преподаватель 1С
Санкт-Петербург
зарплата от 100 000 руб. до 120 000 руб.
Временный (на проект)


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

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

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