|
Штрих код УТ 10,3 | ☑ | ||
---|---|---|---|---|
0
Polzovatel
23.11.12
✎
12:00
|
Подскажите как правильно при создании номенклатуры при проведение автоматом присваивать штрих код не заходя во вкладку ШК.
Делаю след образом в процедуру При записи добавляю след код Процедура ПриЗаписи(Отказ) Если НЕ ЗначениеЗаполнено(ЭлементыФормы.Штрихкоды.ТекущиеДанные) Тогда ЭлементыФормы.Штрихкоды.ДобавитьСтроку(); КонецЕсли; КонецПроцедуры // ПриЗаписи() Если создаешь номенклатуру то нормально отрабатывает но если зайти и редактировать то он опять добавляет еще 1 ШК. как прописать условие есть уже есть запись то не создавать шк. |
|||
1
Godofsin
23.11.12
✎
12:02
|
на количество() проверяй
|
|||
2
Polzovatel
23.11.12
✎
12:05
|
т.е. вместо ЗначениеЗаполнено() количество() ?
|
|||
3
Godofsin
23.11.12
✎
12:15
|
Если ЭлементыФормы.Штрихкоды.Количество() = 0 тогда
|
|||
4
Polzovatel
23.11.12
✎
12:40
|
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1552)}: Метод объекта не обнаружен (Количество)
Если ЭлементыФормы.Штрихкоды.Количество()=0 Тогда |
|||
5
SherifSP
23.11.12
✎
12:42
|
(4) Не слушай их, это не ТЗ, не массив, не дерево значений
|
|||
6
SherifSP
23.11.12
✎
12:43
|
(4) Отладчиком пользуйся, там можно все
|
|||
7
Polzovatel
23.11.12
✎
12:49
|
Так чем проверять есть ли записи в табличном поле.
|
|||
8
alextom81
23.11.12
✎
12:50
|
Запросом проверяй записи РС "Штрихкоды" - и если записи есть - не записывай. Выбери в синтаксис помошнике метод СрезПоследних для регистров сведений - и кури до посинения. Только записи должны быть активными. И не добавить строку надо, а сформировать штрих код.
|
|||
9
alextom81
23.11.12
✎
12:54
|
И пихай в подписку, а не в модуль
|
|||
10
alextom81
23.11.12
✎
13:02
|
Пардон, он не периодический. тогда просто записи проверяй
|
|||
11
nikitaclanbox
23.11.12
✎
13:04
|
попробуй так:
Если ЭтоНовый() = Истина Тогда ЭлементыФормы.Штрихкоды.ДобавитьСтроку(); КонецЕсли; |
|||
12
alextom81
23.11.12
✎
13:27
|
Балин.
1. Создай дополнительныймодуль 2. Запихни в него такую процедуру Процедура СформироватьШтрихКод(Источник) Экспорт Если НЕ Источник.ВесовойТовар И НЕ Источник.ВестиУчетПоХарактеристикам Тогда Запрос = Новый Запрос("ВЫБРАТЬ | Штрихкоды.Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК Штрихкоды |ГДЕ | Штрихкоды.Владелец = &Владелец | И Штрихкоды.ЕдиницаИзмерения = &ЕдиницаИзмерения | И Штрихкоды.Качество = &Качество"); Запрос.УстановитьПараметр("Владелец", Источник); Запрос.УстановитьПараметр("ЕдиницаИзмерения", Источник.ЕдиницаХраненияОстатков); Запрос.УстановитьПараметр("Качество", Справочники.Качество.Новый); Если Запрос.Выполнить().Пустой() Тогда РСШтрихкоды = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); РСШтрихкоды.Активность = Истина; РСШтрихкоды.Владелец = Источник; РСШтрихкоды.ЕдиницаИзмерения = Источник.ЕдиницаХраненияОстатков; РСШтрихкоды.Качество = Справочники.Качество.Новый; РСШтрихкоды.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; РСШтрихкоды.Штрихкод = РаботаСТорговымОборудованием.СформироватьШтрихКод(); КонецЕсли; КонецЕсли; КонецПроцедуры Всё. Добавь подписку "ЗаписиСправочников" - назначь номенклатуре эту подписку при записи (возможно придётся проверять на ЭтоНовый()); И EAN-13 - е будут генерироваться автоматически |
|||
13
alextom81
23.11.12
✎
13:28
|
Попытка
РСШтрихкоды.Записать(); Исключение // Тут можно оповестить пользователя КонецПопытки; Этот код ещё надо добавить, чтобы запись появилась |
|||
14
Polzovatel
23.11.12
✎
13:42
|
Вместо шк используем код номенклатуры. Просто вместо шк записывает код номенклатуры (это реализовано и работает) чтобы ускорить ввод номенклатуры и просили чтобы не заходя во вкладку шк а при проведении номенклатуры добавлялись шк.
|
|||
15
Polzovatel
23.11.12
✎
13:44
|
как в модуле формы номенклатуры При записи вызвать Процедура СформироватьШтрихКод(Источник) Экспорт... добавил в Общий модуль "СформироватьШтрихКодНовый"?)
|
|||
16
alextom81
23.11.12
✎
14:39
|
Примерно так, и плюс к этому надо добавить "подписку для события" на событие при записи
|
|||
17
alextom81
23.11.12
✎
14:42
|
Штрих-код, понятно тогда этот вызов
РСШтрихкоды.Штрихкод = РаботаСТорговымОборудованием.СформироватьШтрихКод(); Меняйте на вашу процедуру формирования. Конкретную вашу проблемы исправит запрос на проверку существования штрихкода, я лишь полностью описал метод, каким пошёл бы сам. |
|||
18
Polzovatel
23.11.12
✎
14:47
|
Спасибо большое оч помогли... правда не работает пока еще но есть куда двигаться)
|
|||
19
Polzovatel
23.11.12
✎
16:18
|
Решил след образом
Процедура ПриЗаписи(Отказ) ТекущаяСтрока = ЭлементыФормы.Штрихкоды.ТекущиеДанные; Если ТекущаяСтрока = Неопределено Тогда ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); ТекЗапись.Владелец = Ссылка; ТекЗапись.ЕдиницаИзмерения = ЕдиницаХраненияОстатков; ТекЗапись.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; ТекЗапись.Качество = Справочники.Качество.Новый; ТекЗапись.Штрихкод = ЭлементыФормы.Код.Значение; Попытка ТекЗапись.Записать(); Исключение КонецПопытки; Иначе ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); ЗаполнитьЗначенияСвойств(ТекЗапись, ТекущаяСтрока); ТекЗапись.Прочитать(); ТекЗапись.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; ТекЗапись.Штрихкод = ЭлементыФормы.Код.Значение; Попытка ТекЗапись.Записать(); Исключение КонецПопытки; КонецЕсли; КонецПроцедуры // ПриЗаписи() Подскажите как установить курсор во вкладке ШК на первую запись. |
|||
20
alextom81
23.11.12
✎
20:34
|
1. Не изобретай велосипед - не надо позиционироваться на записи регистра сведений, выводимой в странице элемента, которая на самом деле является списком, выводимым из регистра сведений - посмотри процедуру открытия формы элемента. Меняй набор записей регистра непосредственно, а не элемент формы текущие данные - заведомо неправильный ход. Взяли вы из всей полезной информации, которую я дал, лишь "попытку". Смотрите - в форме элемента на закладке "штрихкоды" у вас - записи регистра сведений. Ими и необходимо манипулировать - не трогайте элемент формы, не принадлежащий элементу. Он сам обновиться после всех необходимых действий с записями регистров.
1. Справочник номенклатура является владельцем для регистра сведений "штрихкоды". Регистр сведений ведёт контроль уникальности по полям "штрихкод, тип, единицаизмерения,качество, характеристика". В форме справочника у вас лишь выводиться информация о том, какие записи принадлежат вашей номенклатуре. Читайте в СП про регистра сведений до просветления. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |