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

Хранилище

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

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



> Завершение редактирования строки штрих-кода , "Управление торговлей для Украины", редакция 2.3. (2.3.18.1)          
Fabri Подменю пользователя
сообщение 06.02.13, 13:12
Сообщение #1

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

Есть такая неудобная вещь в данной конфигурации: Справочники - Номенклатура. Вкладка Штрихкоды - табличное поле - Штрихкоды (РегистрСведенийСписок.Штрихкоды). При добавлении новой строки, в таблице происходит переход в режим редактирования, т.е. активно поле ввода Тип Штрихкода, если сразу сканером добавить штрих-код - естественно он не добавляется, а добавляется только в том случае, если запись уже добавлена и активирована. Чтоб добавить штрихкод номенаклуры, приходится кликать на кнопочку добавить, потом кликать мышкой в любую пустую область таблицы, запись добавляется и стает активной. Это очень не практично и не удобно, особенно есть 1С запущена на планшете или нетбуке с диагональю экрана 10".

Пробовал добавлять код:
Этаформа.ЭлементыФормы.Штрихкод.ЗавершитьРедактированиеСтроки(Ложь); // Ефекта 0


По форумах искал - нигде толкогово ответа. Подскажите как после добавления записи в табличное поле, выйти с режима редактирования и записать новосозданную строку.

Ardi Подменю пользователя
сообщение 06.02.13, 14:20
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Активировать программно другое поле.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: Fabri,

Fabri Подменю пользователя
сообщение 06.02.13, 15:07
Сообщение #3

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

Я сделал чуток иначе, удалил стандартную кнопку добавления строки в таблицу, и добавил свою, с кодом:

Процедура КоманднаяПанельШтрихкодыДобавить(Кнопка)
    
ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();

ТекЗапись.Владелец         = Ссылка;
ТекЗапись.ЕдиницаИзмерения = ЕдиницаХраненияОстатков;
ТекЗапись.ТипШтрихкода     = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
ТекЗапись.Качество         = Справочники.Качество.Новый;
ТекЗапись.Штрихкод         = "";

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

КонецПроцедуры


Единтсвенный вопрос, как в таблице активизировать данный элемент? или хотя бы элемент с индексом 0 (новая запись всегда первая в списке)

logist Подменю пользователя
сообщение 06.02.13, 15:43
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Я бы сделал окно запроса штрихкода, и уже потом запись его в строку. Это проще, чем записывать строку, активизировать поле и вписывать туда.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Fabri Подменю пользователя
сообщение 06.02.13, 16:29
Сообщение #5

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

Цитата(logist @ 06.02.13, 15:43) *
Я бы сделал окно запроса штрихкода, и уже потом запись его в строку. Это проще, чем записывать строку, активизировать поле и вписывать туда.


А зачем изобретать велосипед? В стандартном модуле работы с шк прописана замена активного элемента. Теперь выводить окно запроса, на нем кнопку добавить - много лишних движений. Проще 1 раз нажать добавить, и засканировать код.

Никто так и не подскажет как активировать строку в табличном поле?

Vofka Подменю пользователя
сообщение 06.02.13, 16:37
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Цитата(Fabri @ 06.02.13, 16:29) *
Никто так и не подскажет как активировать строку в табличном поле?

Почему не подскажет? Подскажет:
ЭлементыФормы.Штрихкоды.ТекущаяСтрока = Штрихкоды[0];

Спасибо сказали: Fabri,

logist Подменю пользователя
сообщение 06.02.13, 17:09
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Fabri @ 06.02.13, 16:29) *
А зачем изобретать велосипед?

Так это Вы изобретаете велосипед. Я бы просто изменил одну стандартную процедуру, добавив в нее три строчки:
Процедура ШтрихкодыПриНачалеРедактирования(Элемент, НоваяСтрока)

    ТекущаяСтрока = Элемент.ТекущиеДанные;

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

КонецПроцедуры // ШтрихкодыПриНачалеРедактирования()


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Fabri Подменю пользователя
сообщение 07.02.13, 10:33
Сообщение #8

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

Цитата(logist @ 06.02.13, 18:09) *
Так это Вы изобретаете велосипед. Я бы просто изменил одну стандартную процедуру, добавив в нее три строчки:
Процедура ШтрихкодыПриНачалеРедактирования(Элемент, НоваяСтрока)

    ТекущаяСтрока = Элемент.ТекущиеДанные;

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

КонецПроцедуры // ШтрихкодыПриНачалеРедактирования()


Ваше решение теоретически верно, а практически не работает. А не работает потому что считанный сканером код не вставляется в выбранное поле как введенные данные с клавиатуры, а обробляется как внешнее событие, обробляется в другой процедуре, придется править и её, и потом опять же получается: нажал кнопку добавить, засканировал штрихкод, опять нажимай кнопку ок чтобы его добавить - слишком много движений.

Можно в принципе сделать проще, добавить к справочнику простую форму с написью "Просканируйте штрихкод", и в обработчике получившего новый штрих код, проверять открыта ли данная форма, если да то добавить новую запись, если нет, то изменить текущую активную запись.
Но все же хочется как-то попроще сделать.

Установкой ЭтаФорма.ЭлементыФормы.Штрихкоды.ТекущаяСтрока - некатит, так как выскакивает ошибки - не обнаружен ключ записи. В отладчике видно - ЭтаФорма.ЭлементыФормы.Штрихкоды.ТекущаяСтрока - это тип РегистрСведенийКлючЗаписи.Штрихкоды.

Короче как решить незнаю пока, буду игратся. Если у кого-то будут идеи по решению данного вопроса, буду благодарен.

Batchir Подменю пользователя
сообщение 07.02.13, 10:50
Сообщение #9

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Цитата(Fabri @ 06.02.13, 13:12) *
если сразу сканером добавить штрих-код - естественно он не добавляется, а добавляется только в том случае, если запись уже добавлена и активирована

Так в чем дело? Обработчик не найденного ШК уже присутствует в форме элемента номенклатуры.
Сканируете штрихкод в карточке номенклатуры:
1. если он не найден в БД, то вопрос "Добавить сосканированный штрихкод?" (ДаНет)
Если да, то добавляете программно в регистр запись.
2. если он не найден в БД и при этом активирована строка с уже имеющимся штрихкодом, то вопрос "заменить выбранный штрихкод?"
Если да, то изменяете.

Сообщение отредактировал Batchir - 07.02.13, 10:51

Спасибо сказали: Fabri,

Fabri Подменю пользователя
сообщение 07.02.13, 11:30
Сообщение #10

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

Batchir - Спасибо большое, самое оптимальное решение.

Дописал код, все отлично работает. Почему не додумался раньше до такого решения - незнаю, видимо идеология сыргала свою роль, что нужно сначала кнопочку добавить, а потом уже добавлять и не иначе smile.gif

Если кому-то пригодится - могу выложить сюда код с комментариями.

Vofka Подменю пользователя
сообщение 07.02.13, 12:04
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Цитата(Fabri @ 07.02.13, 11:30) *
Если кому-то пригодится - могу выложить сюда код с комментариями.

Выложите конечно. Если даже сейчас никому не надо, может быть кто-то в будущем посмотрит на него и вспомнит вас добрым словом smile.gif .

Fabri, перенес ваше сообщение с описанием решения в отдельную тему. Даже нажал палец wink.gif .

Спасибо сказали: Fabri,

Fabri Подменю пользователя
сообщение 07.02.13, 12:13
Сообщение #12

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

Цитата(Vofka @ 07.02.13, 13:04) *
Fabri, перенес ваше сообщение с описанием решения в отдельную тему. Даже нажал палец .


Спасибо, ещё подскажите, в какую ветку форума выставлять свои обработки? Выставлю обработку для добавления фото номенклатуры, переименовав имя файла на номер кода номенклатуры (в написании которой, к стати, тоже помогали мне тут на форуме).

Vofka Подменю пользователя
сообщение 07.02.13, 12:29
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Fabri, если это по 8 - тогда здесь (предварительно ознакомившись с правилами данного раздела wink.gif ). И если у вас ещё подобного рода вопросы будут возникать - задайте их по ЛС кому-то из администрации, чтоб не разводить офтоп в темматических ветках.

Спасибо сказали: Fabri,

zetovich Подменю пользователя
сообщение 09.02.13, 23:05
Сообщение #14

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

Сканер подключен через com (всегда выбираю такой, что и ВАм советую). 100% утверждать не буду - но вроде все работает без всяких дополнительных телодвижений. Т.е. открыли закладку, поднесли к сканеру и добавляется запись в регистр сама.

Batchir Подменю пользователя
сообщение 10.02.13, 11:37
Сообщение #15

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Цитата(zetovich @ 09.02.13, 23:05) *
Сканер подключен через com (всегда выбираю такой, что и ВАм советую). 100% утверждать не буду - но вроде все работает без всяких дополнительных телодвижений. Т.е. открыли закладку, поднесли к сканеру и добавляется запись в регистр сама.


Ну у Fabri я так понимаю тоже либо ком, либо с эмуляцией, либо с дровами раз вызывается обработка внешнего события. А вот сама запись вроде не добавляется, точнее добавляется только если активировна уже имеющаяся строка.

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


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

 

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