Вход | Регистрация
 

Данные были изменены, сохранить изменения ?

Данные были изменены, сохранить изменения ?
Я
   NIGHTHUNTER
 
27.07.21 - 12:24
В документ Внутренний заказ, в процедуру ПередЗаписью, добавлен код.
Открываю документ. Пытаюсь записать. В соответствии с введенным кодом, его записать не удается.
Но, тепери, при его закрытии выдается сообщение, -

Данные были изменены. Сохранить изменения?

Почему начинает выдаваться это сообщение? Ведь ничего не менялось в документе. Что сделать что бы оно не выводилось?

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Настройка       = ГлобальныйМодуль.ПолучитьСтруктуруНастроек();
    РегистрСведений = ГлобальныйМодуль.ОтборРегистраНастроек(Настройка.ТоварыНаКомиссии);
    Если РегистрСведений.Количество() > 0 Тогда
        ТоварыНаКомиссии = РегистрСведений[0].Хранилище.Получить();
    КонецЕсли;
    //
    Запрос       = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    ВнутреннийЗаказТовары.Номенклатура КАК Номенклатура
        |ПОМЕСТИТЬ ВТ_ВнутреннийЗаказ
        |ИЗ
        |    &ТЧВнутреннийЗаказ КАК ВнутреннийЗаказТовары
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_ВнутреннийЗаказ.Номенклатура
        |ИЗ
        |    ВТ_ВнутреннийЗаказ КАК ВТ_ВнутреннийЗаказ
        |ГДЕ
        |    НЕ ВТ_ВнутреннийЗаказ.Номенклатура В ИЕРАРХИИ (&СпТоварыНаКомиссии)";
    Запрос.УстановитьПараметр("ТЧВнутреннийЗаказ",  Товары.Выгрузить());
    Запрос.УстановитьПараметр("СпТоварыНаКомиссии", ТоварыНаКомиссии);
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
        Сообщить("В табличной части документа присутствуют товары не относящиеся к группе «Товары на комиссии»!");
        Сообщить("Запись документа не возможна.");
        Отказ = Истина;    
    КонецЕсли;
    //
    
    // <-    
КонецПроцедуры
   Kassern
 
1 - 27.07.21 - 12:27
Модифицированность= ложь
   NIGHTHUNTER
 
2 - 27.07.21 - 12:47
(1) Спасибо!

Вставлять до выполнения кода в процедуре ПередЗаписью, после?
   Kassern
 
3 - 27.07.21 - 12:49
(2) после строчки Отказ = Истина;
   mikecool
 
4 - 27.07.21 - 12:51
(1) ща ты его научишь...
понять - какой реквизит, связанный с данными или у которого взводится признак "сохраняемые данные", модифицируется при открытии и убрать этот косяк
   NIGHTHUNTER
 
5 - 27.07.21 - 12:51
(3) Ясно, я вот сейчас сделал перед всем этим кодом что в (0) и не выдало сообщения.
Вставлю после отказ
   mikecool
 
6 - 27.07.21 - 12:51
+4 идешь в отладке пошагово и понимаешь, где взводится Модифицированность
   NIGHTHUNTER
 
7 - 27.07.21 - 12:52
(3) А если в условие не заходит . где отказ истина. то и вообще там не нужно тогда? Можно тогда в само условие и заключить это
   Kassern
 
8 - 27.07.21 - 12:53
(7) верно вам говорят в (6)  посмотрите в отладке в какой момент у вас модифицированность истина становится. А то блин сейчас реально научу стрелять себе в ногу)
   Мультук
 
9 - 27.07.21 - 12:53
(7) ТоварыНаКомиссии = РегистрСведений[0].Хранилище.Получить();

"ТоварыНаКомиссии" - в документе есть реквизит или таб.часть с таким именем ?

P.S.
А
РегистрСведений
Настройка

?
   ДенисЧ
 
10 - 27.07.21 - 12:53
(8) Фиг ты в отладке это выяснишь )))
   NIGHTHUNTER
 
11 - 27.07.21 - 13:01
(9) нет, реквизита такого в документе вроде как нет.
Этот кусок кода я взял из общего модуля, для получения этого списка значений из хранилища.
   Kassern
 
12 - 27.07.21 - 13:10
(11) скорее всего попытка проведения делает документ модифицированным, а раз проведение завершается с ошибкой, то и модифицированность остается. Если же документ успешно проведен, то модифицированность снимается.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.