Сохранение документа только в случае его редактирования

1. user916115 11.12.18 13:22 Сейчас в теме
8.2 оф
Собственно вся суть в заголовке, пользователи просят, чтобы табличка сохранить документ вылазили только в том случае если они что то в нем меняют, а если просто открыли его - поглазеть, то при нажатии на крест док-т просто закрывался:)
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. oleg-x 26 11.12.18 13:37 Сейчас в теме
(1) Смотрите процедуры перед открытием и при открытие.
Видимо прописан код для заполнения, но не проверяется на новый или какие то расчеты ведутся, которые потом не требуется сохранять.
P.S. У Вас видимо самописная или переделанная, в типовых такого нет.
user916115; +1
7. user916115 11.12.18 15:50 Сейчас в теме
(4) вот что есть в процедуре при открытии

Процедура ПриОткрытии()

	//ОтветственныйИсполнитель = Справочники.Пользователи.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
		//НачалоНумерации = 1;
		//Записать();     ////Не делаю, потому что может открыть только для просмотра другой пользователь, а его запишет
		
	//Если Не ЭтоНовый() Тогда 
	//	Для каждого строч из Материалы Цикл 
	//		строч.КоличествоАнализ =строч.РасходПоФакту;
	//	КонецЦикла;
	//Иначе 
	//	Для каждого строч из Материалы Цикл 
	//		строч.КоличествоАнализ =0;
	//	КонецЦикла;
	//	ОтветственныйИсполнитель = Справочники.Пользователи.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
	//КонецЕсли;
	//
	
	
	 Если РольДоступна("ПолныеПрава") или РольДоступна("ПЭО") Тогда
	ЭлементыФормы.Панель1.Страницы.Страница3.Видимость = Истина;
	ЭлементыФормы.КоманднаяПанель3.Доступность = Истина;
	 Иначе 	 
		 ЭлементыФормы.Панель1.Страницы.Страница3.Видимость = Ложь;
	 КонецЕсли;
	 
	 Если РольДоступна("ПЭО") Тогда
	 //ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Ложь;
	 //ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Ложь;
	 ЭлементыФормы.Материалы.Доступность = Ложь;
	 ЭлементыФормы.ПереченьЗаказов.Доступность = Ложь;
	 ЭлементыФормы.Номер.Доступность = Ложь;
	 ЭлементыФормы.Дата.Доступность = Ложь;
	 ЭлементыФормы.НачалоНумерации.Доступность = Ложь;
	 ЭлементыФормы.Заказ.Доступность = Ложь;
	 ЭлементыФормы.ДатавВыгрузкиВБухгалтерию.Доступность = Ложь;
	 ЭлементыФормы.ОднимДокументом.Доступность = Ложь;
	 ЭлементыФормы.ДоговорСбытаСКоторогоСписываем.Доступность = Ложь;
	 ЭлементыФормы.ИсходныйДокумент.Доступность = Ложь;
	 ЭлементыФормы.СписокПокупных.Доступность = Ложь;
	 ЭлементыФормы.ЗаказКонструкторский.Доступность = Ложь;
	 ЭлементыФормы.Договор.Доступность = Ложь;
	 ЭлементыФормы.КоличествоЗаказов.Доступность = Ложь;
  	 ЭлементыФормы.ДействияФормы.Кнопки.Формирование.Доступность = Ложь;
  	 ЭлементыФормы.ДействияФормы.Кнопки.ПронумероватьАкты.Доступность = Ложь;
  	 ЭлементыФормы.ДействияФормы.Кнопки.Действие6.Доступность = Ложь;
  	 ЭлементыФормы.ДействияФормы.Кнопки.ПроставитьАртикул.Доступность = Ложь;
  	 ЭлементыФормы.ДействияФормы.Кнопки.Действие.Доступность = Ложь;
	 КонецЕсли;

	 
	Если ДоговорСбытаСКоторогоСписываем.Пустая() Тогда 
		ЗаполнятьИзРезерва = Ложь;
		ЭлементыФормы.ЗаполнятьИзРезерва.Доступность = Ложь;
	КонецЕсли;	
	 
	 
КонецПроцедуры
Показать
+
8. user916115 11.12.18 15:51 Сейчас в теме
(4) да, у нас самописная база:(
+
9. oleg-x 26 11.12.18 16:02 Сейчас в теме
(8)
    Если ДоговорСбытаСКоторогоСписываем.Пустая() Тогда 
        ЗаполнятьИзРезерва = Ложь; //вот этот кусок кода взводит модифицированность объекта.
        ЭлементыФормы.ЗаполнятьИзРезерва.Доступность = Ложь;
    КонецЕсли; 

Так делать нежелательно, перенесите данный кусок кода перед записью. Тогда перед тем как записать документ, будет выставлен нужный флаг всегда.
Ну и соответственно при изменение реквизитов влияющих на договор, тоже прописать.
Сделать общую процедуру и вписать где надо.
+
2. Octopus 337 11.12.18 13:25 Сейчас в теме
Так он и должен просто закрываться, если ничего не делали. Если выдается запрос на сохранение, значит скорее всего, при открытии данные модифицируются
user916115; +1
3. CheBurator 3119 11.12.18 13:26 Сейчас в теме
Сделайте по умолчанию чтобы док открывался только в режиме просмотра.
а для редактирования - по спецкомбинации клавиш.
user916115; +1
5. VZyryanov 11.12.18 13:51 Сейчас в теме
В модуле формы в процедуре ПриОткрытии напишите Модифицированность = Ложь;
user916115; +1
6. oleg-x 26 11.12.18 14:36 Сейчас в теме
(5) Можно, но это называется один костыль, закрыть другим :-)
ben19791010; Fox-trot; user916115; +3
10. Bene_Valete 188 12.12.18 03:13 Сейчас в теме
Для начала Вам нужно понять, что именно определяет для программы то, что документ был изменен, хотя по факту никаких изменений не произошло. Один из вариантов - запустите отладку и поставьте точку останова на процедуру ПриОткрытии в модуле формы, откройте табло и пропишите в нем "Модифицированнось". Вначале табло должно показывать значение "ложь". Далее нажимайте клавишу F10 и внимательно следите, в какой момент модифицированность станет "истина". Когда найдете процедуру-виновника, можно будет уже не гадать и действовать решительно :)
+
Внимание! Тема сдана в архив

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