Имя: Пароль:
1C
1С v8
Нет запроса на сохранение документа
, ,
0 rowflag
 
08.11.12
10:36
Если в табличную часть добавляю вручную строку, то при нажатии кнопки закрыть, появляется вопрос о сохранении.
Если добавляю программно, то нет такого запроса, и при нажатии закрыть док закрывается и не сохраняется.
Почему?
Программно это так:


&НаКлиенте
Функция ДобавитьНоменклатуру(Номенклатура)
   Строки = Объект.ТЧСписок.НайтиСтроки(Новый Структура("Наименование", Номенклатура));
   Если Строки.Количество() > 0 Тогда
       Сообщить(Строка(Номенклатура) + " уже есть в списке.");
         Возврат Ложь
   Иначе
         Элемент = Объект.ТЧСписок.Добавить();
       Элемент.Наименование = Номенклатура;
       Элемент.Количество = 1;
       ДанныеНоменклатуры = НаСервереПолучитьДанныеНоменклатуры(Номенклатура);
       Элемент.СерийныйНомер = ДанныеНоменклатуры[0];
       Если ДанныеНоменклатуры[2] <> Неопределено Тогда
           Элемент.Владелец = ДанныеНоменклатуры[2];
           Элемент.СкладНазначения = ДанныеНоменклатуры[3];
       Иначе
           Сообщить(Строка(Номенклатура) + " - не найден владелец. Склад не может быть определен автоматически");
       КонецЕсли;
   КонецЕсли;
КонецФункции
1 Wobland
 
08.11.12
10:37
модифицированность взводи
2 Wobland
 
08.11.12
10:38
(1) не так
(0) потому что модифицированность остаётся прежней
3 Wobland
 
08.11.12
10:39
а что возвращает функция в случае, если такой номенклатуры нет?
4 rowflag
 
08.11.12
10:40
(3) ничего не возвращает. Проверка на есть нет идет в процедуре, из которой вызывается эта функция.
5 Wobland
 
08.11.12
10:41
(4) дану? два раза проверяешь, значит?
6 rowflag
 
08.11.12
10:41
(2) как модифицированность сделать не прежней?
7 rowflag
 
08.11.12
10:42
(5) зачем 2 раза?
8 Wobland
 
08.11.12
10:42
(6) ты усилием мысли хочешь или присвоением?
9 Wobland
 
08.11.12
10:43
(7) откуда я знаю. так следует из твоих слов
10 rowflag
 
08.11.12
10:44
(8) мне бы чтобы запрос появился:)
11 rowflag
 
08.11.12
10:45
Вот одна проверка только.

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
   Если Источник = "BarCodeScaner" Тогда
       //Попытка
           Штрихкод = Число(Данные);    
       //Исключение
           //Сообщить(Данные);
       //КонецПопытки;
       Номенклатура = ПолучитьНоменклатуруПоШтрихкоду(Штрихкод);
       Если Номенклатура <> Неопределено Тогда
           ДобавитьНоменклатуру(Номенклатура);
       Иначе
           Сообщить("Не найдено по штрихкоду " + """" + Штрихкод + """");
       КонецЕсли
   КонецЕсли
КонецПроцедуры
12 cw014
 
08.11.12
10:46
(6) ЭтаФорма.Модифицированность - не, не канает?
13 rowflag
 
08.11.12
10:50
(12) ЭтаФорма.Модифицированность = Истина; // проканала. Спасибо!
14 Wobland
 
08.11.12
10:53
(12) пришёл и всё испортил, негодяй! это было моё спасибо
15 rowflag
 
08.11.12
10:54
(14) Спасибо тебе тоже:)
16 Serg_1960
 
08.11.12
10:59
Осталось только модераторов попросить в наименовании темы "запрос" заменить на "вопрос" :) А то "... и перед ребятами как-то неудобно получилось"(анекдот)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.