Поиск свободного штрихкода одним запросом по оригинальной методике

19.06.18

Учетные задачи - Розничная торговля

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

Скачать исходный код

Наименование Файл Версия Размер
Поиск свободного штрих кода одним запросом по оригинальной методике. :
.epf 5,28Kb
0
.epf 5,28Kb Скачать

Принцип поиска состоит в создании таблицы свободных кодов и ее клона сдвинутого на 1.

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

После объединения этих таблиц получаем минимальный свободный код рассчитанный от заданной границы.

  таблица   таблица  
  основная   клон  
Граница 1 0      
  1 = 1  
  2 = 2  
  3 = 3  
  8 <> 4 Свободный код
  9 = 9  
  13 <> 10 Свободный код
      14  
         
Граница 2 10000      
  10001 = 10001  
  10002 = 10002  
  10003 = 10003  
  10004 = 10004  
  10997 <> 10005 Свободный код
  10998 = 10998  
  10999 = 10999  
  20001 <> 11000 Свободный код
      20002  
         
////////////////////////////////////////////////////////////////////////
// Функции для конфигурации УНФ

Функция ПолучитьДляШтучногоТовараПоследнийКодЧислом(ПрефиксШтучного = "20", ПрефиксПодразделения = "00",МинимальныйКодЧислом = 0) Экспорт
    
     Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    0 КАК ПолеЧисло,
        |    ""0"" КАК ПолеСтрока
        |ПОМЕСТИТЬ ЗначенияЦифр
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    1,
        |    ""1""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    2,
        |    ""2""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    3,
        |    ""3""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    4,
        |    ""4""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    5,
        |    ""5""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    6,
        |    ""6""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    7,
        |    ""7""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    8,
        |    ""8""
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    9,
        |    ""9""
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 5, 1) КАК Поле7о,
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 6, 1) КАК Поле6о,
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 7, 1) КАК Поле5о,
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 8, 1) КАК Поле4о,
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 9, 1) КАК Поле3о,
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 10, 1) КАК Поле2о,
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 11, 1) КАК Поле1о,
        |    ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 12, 1) КАК Поле0о
        |ПОМЕСТИТЬ Разряды
        |ИЗ
        |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        |ГДЕ
        |    ШтрихкодыНоменклатуры.Штрихкод ПОДОБНО &ФорматШтрихкода
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ЗначенияЦифр0.ПолеЧисло + ЗначенияЦифр1.ПолеЧисло * 10 + ЗначенияЦифр2.ПолеЧисло * 100 + ЗначенияЦифр3.ПолеЧисло * 1000 + ЗначенияЦифр4.ПолеЧисло * 10000 + ЗначенияЦифр5.ПолеЧисло * 100000 + ЗначенияЦифр6.ПолеЧисло * 1000000 + ЗначенияЦифр7.ПолеЧисло * 10000000 КАК ЧисловоеЗначение
        |ПОМЕСТИТЬ Занятые
        |ИЗ
        |    Разряды КАК Разряды
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр0
        |        ПО Разряды.Поле0о = ЗначенияЦифр0.ПолеСтрока
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр1
        |        ПО Разряды.Поле1о = ЗначенияЦифр1.ПолеСтрока
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр2
        |        ПО Разряды.Поле2о = ЗначенияЦифр2.ПолеСтрока
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр3
        |        ПО Разряды.Поле3о = ЗначенияЦифр3.ПолеСтрока
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр4
        |        ПО Разряды.Поле4о = ЗначенияЦифр4.ПолеСтрока
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр5
        |        ПО Разряды.Поле5о = ЗначенияЦифр5.ПолеСтрока
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр6
        |        ПО Разряды.Поле6о = ЗначенияЦифр6.ПолеСтрока
        |        ЛЕВОЕ СОЕДИНЕНИЕ ЗначенияЦифр КАК ЗначенияЦифр7
        |        ПО Разряды.Поле7о = ЗначенияЦифр7.ПолеСтрока
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    &МиНЧисло
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Занятые.ЧисловоеЗначение КАК ЧисловоеЗначение
        |ПОМЕСТИТЬ ФЗанятые
        |ИЗ
        |    Занятые КАК Занятые
        |
        |СГРУППИРОВАТЬ ПО
        |    Занятые.ЧисловоеЗначение
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ФЗанятые.ЧисловоеЗначение + 1 КАК ЧисловоеЗначение
        |ПОМЕСТИТЬ Плюс1
        |ИЗ
        |    ФЗанятые КАК ФЗанятые
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ ПЕРВЫЕ 1
        |    Плюс1.ЧисловоеЗначение КАК ЧисловоеЗначение
        |ИЗ
        |    Плюс1 КАК Плюс1
        |        ЛЕВОЕ СОЕДИНЕНИЕ ФЗанятые КАК ФЗанятые
        |        ПО Плюс1.ЧисловоеЗначение = ФЗанятые.ЧисловоеЗначение
        |ГДЕ
        |    ФЗанятые.ЧисловоеЗначение ЕСТЬ NULL
        |    И Плюс1.ЧисловоеЗначение > &МиНЧисло
        |
        |УПОРЯДОЧИТЬ ПО
        |    ЧисловоеЗначение";
    
    Запрос.УстановитьПараметр("ФорматШтрихкода", ПрефиксШтучного + ПрефиксПодразделения + "_________"); // РегистрыСведений.ШтрихкодыНоменклатуры.ФорматВесовогоШтрихкода(ПрефиксВесовогоТовара));
    Запрос.УстановитьПараметр("МиНЧисло",МинимальныйКодЧислом ); 
    
    КодЧислом = Запрос.Выполнить().Выгрузить()[0].ЧисловоеЗначение -1;
    
    Возврат    КодЧислом;
    
КонецФункции

Тестировалась на УНФ 1.6.13.58.

В файле примеры для 1с Розница и 1с УНФ подходит для любого релиза.

Функция Штрихкод Поиск Свободный Один Запрос

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    90902    108    40    

197

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    766214    4694    9501    

2792

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    166406    702    362    

389

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211076    630    526    

446

54-ФЗ и Разрешительный режим. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима.

5400 руб.

25.05.2015    317880    1851    3012    

998

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110647    34    114    

178

Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.4, 11.5, КА 2.4, 2.5, Розница 3.0, 2.3 и 2.2, УНФ 1.6, УНФ 3x, ERP 2.4, 2.5, БП 3, БГУ2 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4000 руб.

27.08.2018    116899    993    565    

836
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Kott01 12 20.06.18 15:23 Сейчас в теме
Что явилось причиной отказа от штатного формирования штрихкодов?
+
2. BackHand001 23 20.06.18 20:57 Сейчас в теме
(1)Штатное формирование ищет наибольший код, и если у вас после кода 10, случайно попадает код 90000 , штатная выдаст 90001, а эта функция выдаст 11.
Если у Вас два компьютера в распределенной базе, штатно они будут присваивать одинаковые коды, разным товарам. На одной из распределенных баз, этой функции можно передать нижний предел например: 100000 и она выдаст 100001. на другой базе без предела выдаст 11.
С Уважением, Алексей.
+
3. RocKeR_13 1321 20.06.18 21:38 Сейчас в теме
(2) для РИБа же есть префиксы штрихкодов на узлах
Kott01; +1
4. BackHand001 23 20.06.18 23:46 Сейчас в теме
(3)Да есть, но есть еще и производство, в котором уже масса товара получила свои штрих коды по стандартной технологии и на предыдущих релизах. И там они уже имеют вид:
20 99867 43434К,
Ваши предложения, в студию.
С Уважением, Алексей.
+
5. djigit0s 15.08.21 10:41 Сейчас в теме
А каким образом вычисляется МинимальныйКодЧислом? если оставить его 0, то выдается один и тот же код каждый раз
+
6. BackHand001 23 01.09.21 12:20 Сейчас в теме
Он не вычисляется, чтобы все работало в базе должен быть хотя бы один штрихкод.
+
Оставьте свое сообщение