Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Убрать вопрос при сохранении номенклатуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Fabri
Дорогие форумчане. Стокнулся с такой проблемкой. На предприятии часть номенклатуры с штрих-кодом, часть - без. Руководство хочет видеть в списке номенклатуры штрихкод. Добавил в справочник Номенклатура дополнительный реквизит - Штрихкод. Добавил на форму элемента поле для его вывода.

При записи добавил процедуру:
Процедура СохранитьШтрихкод()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Штрихкоды.Штрихкод
        |ИЗ
        |    РегистрСведений.Штрихкоды КАК Штрихкоды
        |ГДЕ
        |    Штрихкоды.Владелец.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

//Для каждой номенклатуры клиента автоматом создается ещё и свой штрихкод (вида 20ххххххххххх), и его же клиент хочет и видеть
Если Лев(Строка(ВыборкаДетальныеЗаписи.Штрихкод),2)="20" Тогда
    ЭтотОбъект.Штрихкод = Строка(ВыборкаДетальныеЗаписи.Штрихкод);    
    Возврат;
КонецЕсли;
    КонецЦикла;
    
    ЭтотОбъект.Штрихкод = Строка(ВыборкаДетальныеЗаписи.Штрихкод);        
    
              //Если удалили все штрихкоды для номенклатуры - очищаем поле штрихкод
    Если ВыборкаДетальныеЗаписи.Штрихкод=Неопределено Тогда
        ЭтотОбъект.Штрихкод = "";        
    КонецЕсли;
    
КонецПроцедуры


Все работает отлично, но, при нажатии на ОК (Записать и закрыть), выводится сообщение - "Данные были изменены, хотите сохранить? Да,Нет,Отмена", что довольно таки мешает, особенно когда заполняются штрихкоды для номенклатуры, и приходится по 100 раз нажимать на Да.

Искал текст "Данные были изменены, хотите сохранить?" в модуле справочника Номенклатура, его нет, есть в форме настройки, закоментил, еффекта 0.
А весь прикол ещё в чем, когда меняю поле Наименование справочника и нажимаю ОК, такое сообщение не выскакивает.

Как можно убрать данный вопрос и автоматом записывать все изменения без вопросов?

P.S. Клиент - это мое место работы, конфа УТ для украины, её и допиливаю. Это я к тому, чтобы никто не думал что я зарабатываю деньги, а код пишут за меня форумчане smile.gif
Ardi
Блджадт.
Прац иДура ПередЗаписью()
КонецДуры
Fabri
Пасибай учитэл©
logist
Цитата(Fabri @ 08.02.13, 11:40) необходимо зарегистрироваться для просмотра ссылки
Руководство хочет видеть в списке номенклатуры штрихкод.

А почему не сделали вывод сразу в список?

необходимо зарегистрироваться для просмотра ссылки
Цитата(Fabri @ 08.02.13, 11:40) необходимо зарегистрироваться для просмотра ссылки
Искал текст "Данные были изменены, хотите сохранить?" в модуле справочника Номенклатура, его нет, есть в форме настройки, закоментил, еффекта 0.

Вы сделали мой день! Спасибо smile.gif)


Ну и, учимся оптимизировать:

Процедура СохранитьШтрихкод()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    Штрихкоды.Штрихкод
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды
    |ГДЕ
    |    Штрихкоды.Владелец.Ссылка = &Ссылка
    |    И (ВЫРАЗИТЬ(Штрихкоды.Штрихкод КАК СТРОКА(2))) = ""20""";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
        ЭтотОбъект.Штрихкод = ВыборкаДетальныеЗаписи.Штрихкод;    
    Иначе    
        ЭтотОбъект.Штрихкод = "";        
    КонецЕсли;
    
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.