Имя: Пароль:
1C
1С v8
Вопрос про диалог "Данные были изменены. Сохранить изменения?"
0 Omskdizel
 
07.04.13
22:46
Доброго времени суток!

Вопрос НЕ на тему, как отключить сие окошко.

Итак, ситуевина. УТ10.3 (что походу не очень важно). Есть справочник Номенклатура. Сделал небольшую примочку к нему в виде отдельного регистрика, где нужные данные хранятся. Сделал еще одну вкладку, там данные показываю (каждое в отдельном поле ввода). Соответственно ПриОткрытии их читаю. ПриЗаписи их записываю.
Но! Натолкнулся не пренеприятнейшее поведение системы. Сабжевый вопрос задается после ПриЗаписи, и даже после ПослеЗаписи. Оно бы вроде как и нехай, но на ответ Нет мне бы хотелось, чтобы мои дополнительные сведения не записывались. Попробовал менять содержимое и стандартных полей, поведение категорически то же самое. Т.е. меняю, жмякаю ОК, говорю ему не записывать, снова открываю элемент справочника - поле изменено. Теперь собственно вопрос. Что можно сделать с данным недоразумением? Да, платформа 8.2.17.169
1 Omskdizel
 
07.04.13
22:50
Хм... Обнаружил еще один прикол. Если ответить Да, то запись отрабатывается еще раз. Проверил модуль формы, отдельно Записать() не вызывается, что конечно не показатель... Кнопка ОК вполне нормальная и стандартная, в смысле не переопределенная.
2 hhhh
 
07.04.13
23:09
менять реквизиты перед записью, не?
3 Flyd-s
 
07.04.13
23:23
>>Соответственно ПриОткрытии их читаю.

Читаешь куда? В ТЗ, которую выводишь в реквизиты формы?
4 Omskdizel
 
08.04.13
00:05
(2) Не, я конечно местами чайник, но не настолько :)
(3) Я ж написал, что сделал просто поля ввода. Туда данные ПриОткрытии помещаю (либо начальными заполняю если ЭтоНовый). Если ничего не трогать, то все ок. Проблемы только ПриЗаписи.
5 Крутил_
Вертел_1С
 
08.04.13
01:56
(0) у данных есть галка "Изменяет данные" которая влияет на изменение формы и вопрос сохранения.

Почему не сделать Регистр сведений в Номенклатуре на прямую? У меня так реализовано, само всё грузит, открываешь номенклатуру, там регистр сведений с отбором текущей номенклатуры и вносишь туда данные. В регистр пишется данные с привязкой к текущей номенклатуре.
6 Omskdizel
 
08.04.13
07:07
(5) Галки понаставил естественно, ибо они меняют данные, хоть и не непосредственно в элементе справочника.

Зачем делать регистр в номенклатурине, если в принципе на одну номенклатуру будет в принципе одна запись?

Да и вообще, безотносительно регистра, почему система может себя так вести? Если по кнопке ОК где-то в дебрях будет произведена программная запись элемента (в ПередЗаписью например), диалог же по идее не должен показываться?
7 kosts
 
08.04.13
07:51
(0) Где-то, что-то меняется, то что не должно меняться. Отладчик спасёт.
8 Filippov
 
08.04.13
08:16
Это же сообщение, но в другом контексте. Используется внешняя обработка табличной части документа, формирующая файл заданной структуры по данным документа. Никаких изменений этой обработкой в документ не вносится. Возможно ли отключить вывод этого диалога, не вмешиваясь в конфигурацию?
9 Omskdizel
 
08.04.13
08:24
(8) Ну тут явно где-то у тебя срабатывает Модфицированность()
10 kosts
 
08.04.13
08:47
(8) Всегда включается модифицированность после обработки табличной части. Исправить во внешней обработке скорее всего нельзя. Если кто знает напишите, тоже интересно. Во внешнюю обработку не передается форма, а только табличная часть.
Используй внешнюю печать вместо внешней обработки ТЧ.
11 NWsFF
 
08.04.13
08:52
(10) >>Всегда включается модифицированность после обработки табличной части.
У меня не включается что я сделал не так? Обработка только чтение, прошелся по ТЧ документа, закрыл, все ок, ничего не модифицировало.
12 Omskdizel
 
08.04.13
09:00
(10) Действительно, если ничего не менял в таблице, откуда может появиться Модифицированность?
13 kosts
 
08.04.13
09:29
(11) Проверял в ЗУП. У кнопок вызова обработки тч в подменю заполнить стоит флаг "изменяет данные". Так, что при нажатии на кнопку сразу влетает модифицированность. Возможно в других конфигурациях это как-то по другому реализовано...
14 Filippov
 
08.04.13
09:30
(10) так и сделал (внешняя печатная форма), но вопрос остался.
Тоже искал Модифицированность (нельзя ли на неё как-то повлиять) - но ничего не нашёл
15 hhhh
 
08.04.13
10:12
(12) отладчиком пройдись, на 97 % решает проблему.
16 Omskdizel
 
08.04.13
10:45
А на вопрос в (6) (последний который) есть у кого-нибудь ответ?
17 hhhh
 
08.04.13
10:53
(6) правильно,если в ПередЗаписью, то диалог не будет показываться. Поэтому я и написал (2). Делай такие вещи перед записью.
18 Omskdizel
 
08.04.13
11:06
(17) Я тогда тебя неправильно понял, пардон...

В ПередЗаписью мне не очень нравится, ибо вдруг в итоге элемент записан не будет.
19 hhhh
 
08.04.13
20:25
(18) а в при записи, чтобы не спрашивал, надо дать Записать(), но тогда по второму раз вызовется ПередЗаписью() и ПриЗаписи(). Хотя это не смертельно в общем-то.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший