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

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 и внимательно следите, в какой момент модифицированность станет "истина". Когда найдете процедуру-виновника, можно будет уже не гадать и действовать решительно :)
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

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

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день