Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Добавление нового штрихкода номенклатуры с помощью сканера штрихкодов без "лишних движений" , Для торговых участков конфигураций на базе 1С 8          
Fabri Подменю пользователя
сообщение 07.02.13, 11:56
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Итак: Для того чтоб добавлять новый штрихкод для номенклатуры, просто открыв форму элемента номенклатуры, открываем в конфигураторе -Справочники - Номенклатура - ФормаЭлемента, находим функцию СШКНеизвестныйКод и заменяем её код на следующий:

Функция СШКНеизвестныйКод(Штрихкод, ТипКода, СШК) Экспорт

    Если ЭтоНовый() И РаботаСДиалогами.ЗаписатьНовыйОбъектВФорме(ЭтаФорма) Тогда
        ЭлементыФормы.Штрихкоды.ДобавитьСтроку();
    КонецЕсли;

    ТекущиеДанные = ЭлементыФормы.Штрихкоды.ТекущиеДанные;

    Если ТекущиеДанные = Неопределено Тогда
        //Предупреждение("Не выбрана строка таблицы штрихкодов, для которой регистрируется штрихкод.");
     Ответ=Вопрос("Добавить новый штрихкод для номенклатуры",РежимДиалогаВопрос.ДаНет,,,"Добавить новый штрихкод?");
        Если Ответ=КодВозвратаДиалога.Да Тогда
            ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
        
            ТекЗапись.Владелец         = Ссылка;
            ТекЗапись.ЕдиницаИзмерения = ЕдиницаХраненияОстатков;
            ТекЗапись.ТипШтрихкода     = ТипКода;
            ТекЗапись.Качество         = Справочники.Качество.Новый;
            ТекЗапись.Штрихкод         = Штрихкод;

            Попытка
                ТекЗапись.Записать();
            Исключение
            КонецПопытки;
        
        КонецЕсли;
        
        Возврат Истина;
    КонецЕсли;

    ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
    ЗаполнитьЗначенияСвойств(ТекЗапись, ТекущиеДанные);
    ТекЗапись.Прочитать();
    
    //Если активная строка уже имеет штрихкод - спросим заменять или добавить новый
    Если ЗначениеЗаполнено(ТекЗапись.Штрихкод)=Истина Тогда
        //Спросим заменить штрихкод или добавить новый
        Ответ=Вопрос("Выбранное поле уже содержит штрих код." + Символы.ПС + "ДА: Заменить штрихкод новым" + Символы.ПС + "НЕТ: Добавить новый штрихкод"+ Символы.ПС + "ОТМЕНА: Отменить все действия",РежимДиалогаВопрос.ДаНетОтмена,,,"Хотите заменить штрих код?");
        
        //Если ответ Да - заменяем текущую строку
        Если Ответ=КодВозвратаДиалога.Да Тогда
            ТекЗапись.ТипШтрихкода = ТипКода;
            ТекЗапись.Штрихкод     = ШтрихКод;
            
        //Если ответ Нет - добавляем новую строку    
        ИначеЕсли Ответ=КодВозвратаДиалога.Нет Тогда
            ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
        
            ТекЗапись.Владелец         = Ссылка;
            ТекЗапись.ЕдиницаИзмерения = ЕдиницаХраненияОстатков;
            ТекЗапись.ТипШтрихкода     = ТипКода;
            ТекЗапись.Качество         = Справочники.Качество.Новый;
            ТекЗапись.Штрихкод         = Штрихкод;

            Попытка
                ТекЗапись.Записать();
            Исключение
            КонецПопытки;
            Возврат Истина;
            
        //Если Отмена - ничего не делаем
        Иначе
            Возврат Истина;
        КонецЕсли;
    //Если текущая строка пустая, добавляем новый штрихкод    
    Иначе
        ТекЗапись.ТипШтрихкода = ТипКода;
        ТекЗапись.Штрихкод     = ШтрихКод;
    КонецЕсли;
    
    Попытка
        ТекЗапись.Записать();
    Исключение
    КонецПопытки;

    Возврат Истина;

КонецФункции // СШКНеизвестныйКод()


Теперь при открытии номенкларуты не прийдется выбирать вкладку Штрихкоды и добавлять новую запись, можно сразу просканировать код, и нажать Да, если его нужно добавить.


P.S. Расписал так подробно только потому, чтоб было понятно и начинающим программистам, вроде меня smile.gif

Спасибо сказали: ignsv, Meest, niklain-k, Vofka, ТЫМ,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 20:26
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!