DBF-база штрихкодов продуктового магазина (290777 записей)

Опубликовал Роман (hrom) в раздел Обмен - Обмен через DBF

Штатная обработка 1С ТиС ничего не находила в базе "ЮНИСКАН", поэтому возникла идея создать свою локальную базу по работе со штрихкодами для 1с77 и 1С81. Сканируем штрихкод и если в 1С нет информации о таком товаре, он ищется в моей DBF базе, автоматически создается номенклатура с найденным названием, единицей измерения и штрихкодом, плюс заносится в документ "ПоступлениеТоваров и Услуг", или в подобный (оператору остается только указать цену товара).

База состоит из DBF файла и индексного файлка к нему.

DBF имеет три поля:

"SHKOD" (строка 13 символов) - штрихкод

"NAME"  (строка 50 символов)- название товара
"EDIZM"(строка 4 символа) - единица измерения

и 290777 записей о товарах. Штрихкода уникальные (т.е. нет задвоений штрихкодов)

CDX файл содержит индексы по полю "SHKOD".

В базе содержатся товары из трех супермакетов, обработки, которыми выгружал эту инфу для 1с ТиС и 1С УТ прилагаю в архиве "ОбработкиВыгрузкиИз1СвДБФ.rar".

Также прилагаю обработку для создания товара по штрихкоду и заполнению в выбранный документ: "СоздатьНоменклатуруПоШК.rar"

К СоздатьНоменклатуруПоШК.epf можно подключать одновременно несколько DBF-файлов, все настройки на вкладке "Настройки".

Для того, чтобы "прикрутить" СоздатьНоменклатуруПоШК.epf к УТ надо добавить в модуль формы документа такой код:

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


ФайлОбработки = новый Файл(КаталогПрограммы()+"СоздатьНоменклатуруПоШК.epf");


Если ФайлОбработки.Существует() Тогда

Обработка = ВнешниеОбработки.Создать(КаталогПрограммы()+"СоздатьНоменклатуруПоШК.epf");

мФормаИдентификацияШтрихкодов=Обработка.ПолучитьФорму("Форма");

мФормаИдентификацияШтрихкодов.Открыть();

мФормаИдентификацияШтрихкодов.ДобавитьНеизвестныйШтрихкод(ТипКода, Штрихкод, 1, Этаформа);

Иначе

Если мФормаИдентификацияШтрихкодов = Неопределено Тогда

мФормаИдентификацияШтрихкодов = Обработки.ИдентификацияШтрихкодов.ПолучитьФорму();

КонецЕсли;

мФормаИдентификацияШтрихкодов.Открыть();
мФормаИдентификацияШтрихкодов.ДобавитьНеизвестныйШтрихкод(ТипКода, Штрихкод, 1, Этаформа);

Активизировать();
КонецЕсли;

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

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


 Для 1С77 прилагаю фрагмент кода, по нахождению нужной записи в моей базе товаров:

Файл=СоздатьОбъект("XBASE");

Файл.ОткрытьФайл(ВыбФайлВыгрузки,ВыбФайлВыгрузки,1);

Файл.ТекущийИндекс("IDSHKOD");

Файл.Ключ.SHKOD = ВыбШк;

Если Файл.НайтиПоКлючу(0)=1 Тогда

Сообщить(Файл.NAME);

Иначе

Предупреждение("Нет такого Штрихкода!");

КонецЕсли;

Файл.ЗакрытьФайл();


P.S.: Если интересно, могу сделать DBF-ки для Хоз.магазинов и Оптики.

P.P.S.: Написал обработку для 1С77 "СоздатьНоменклатуруПоШК-КА и ТиС.zip" писал и тестировал её под комплексной конфигурацией, но в ТиС она тоже будет работать. Вообще, будет работать в любой конфе под 1С77,  где есть Справочник "Номенклатура" и подчиненный справочник "Единицы", "ОКЕИ" со стандартным набором реквизитов, ессно.

Скачать файлы

Наименование Файл Версия Размер
База супермаркета
.zip 6,91Mb
14.02.17
376
.zip 6,91Mb 376 Скачать
1С81 УТ10.3 создание номенклатуры по ШК
.rar 9,93Kb
14.02.17
91
.rar 9,93Kb 91 Скачать
Обработка для 1С77 по поиску и созданию номенклатуры на основе ШК
.ert 79,00Kb
14.02.17
17
.ert 79,00Kb 17 Скачать
выгрузка из ТиС и УТ
.rar 12,96Kb
14.02.17
43
.rar 12,96Kb 43 Скачать
База магазина Оптики - 7030 записей
.zip 60,20Kb
14.02.17
26
.zip 60,20Kb 26 Скачать
База магазина Хозтоваров - 19875 записей
.zip 500,65Kb
14.02.17
46
.zip 500,65Kb 46 Скачать
База канцелярских товаров - 9496 записей
.zip 212,68Kb
14.02.17
36
.zip 212,68Kb 36 Скачать
Пример работы с DBF и CDX на управляемых формах
.epf 9,01Kb
14.02.17
1
.epf 9,01Kb 1 Скачать

См. также

Комментарии
1. Александр Рытов (Арчибальд) 2652 03.08.10 11:12 Сейчас в теме
Файлы прикрепи, потом публикуйся
2. Дмитрий Осипенков (Рязанский) 09.08.10 10:52 Сейчас в теме
название: продкутового - продуктового
А своя база - это хорошая идея...
3. Роман (hrom) 65 09.08.10 11:36 Сейчас в теме
Рязанский,
исправил :)

Ну как? Штрихкода то находятся?
В эту DBF-ку легко штрихкода из своей базы добавлять с помощью моих внешних обработок, так силами сообщества infostart.ru можно довести её до всеобъемлющих размеров :-)
4. Екатерина Степанова (FERMER111) 10.08.10 03:11 Сейчас в теме
"Для того, чтобы "прикрутить" СоздатьНоменклатуруПоШК.epf к УТ надо добавить в модуль формы документа такой код"
Можно поконкретней? Модуль формы какого документа? И как это работает на примере ввода нового поступления.
5. Роман (hrom) 65 10.08.10 05:38 Сейчас в теме
FERMER111,
Я пробовал на "Управлении торглвей 10.3"
Конфигуратор, Документ "ПоступлениеТоваровУслуг", модуль формы "ФормаДокумента", там ищешь функцию "СШКНеизвестныйКод(Штрихкод, ТипКода, СШК)", существующий код функции комментишь и заменяешь на текст, приведенный мной в описании (ну или вносишь руками нужные изменения в существующий код). Сохраняешь изменения в конфигурации.
По адресу: "КаталогПрограммы()+"СоздатьНоменклатуруПоШК.epf""(обычно C:\Program Files\1cv81\bin\), кладешь мою обработку- "СоздатьНоменклатуруПоШК.epf".
В составе этой обработки есть экспортная процедура "ДобавитьНеизвестныйШтрихкод(ТипКода, Штрихкод, 1, Этаформа)", эта процедура вызвается конфигурацией при внешнем событии ввода штрихкода, если введенный штрихкод не найден в регистре сведений "Штрихкода". Только штатно это процедура вызвается из встроенной обработки "Обработки.ИдентификацияШтрихкодов", а её вызвыаю из моей внешней обработки. Кстати, можешь встроенную "заменить на внешний отчет\обработки" из моего файла "СоздатьНоменклатуруПоШК.epf" и тогда не придется вносить изменения в текст функции "СШКНеизвестныйКод" в каждом документе, но мне кажется это извращение и сам я его не пробовал. По мне лучше в каждом документе внести изменения руками, чтобы понимать в каких документах мне нужен автоматический ввод штрихкода из моей DBF базы, а в каких луше оставить штатную обработку неизвестного штрихкода.
В обработке "СоздатьНоменклатуруПоШК.epf" надо зайти на вкладку "Настройки", заполнить соответствующие поля и "сохранить настройку", тогда вновь создаваемая номенклатура будет создавать в отдельно выделенной для этих целей группе, также там можно изменить лимит строк в документе (чтбы юзер не плодил документы по тысяче строк) и обязательно указать путь к DBF-кам, в которых нужно искать штрихкод. Количество DBF-ок не ограничено. Но обработка ищет сначала в тех DBF-ках, которые идут в начале списка, как только находит соответсвующий штрихкод, поиск прерывается. Если один и тот же штрихкод встречается в нескольких DBF-ках, его можно найти по кнопке "Найти похожие штрихкода", если нужный штрихкод не найдется, то моя обработка предложит для заполнения соседние штрихкода (это только по кнопке "Найти похожие штрихкода").
6. Екатерина Степанова (FERMER111) 11.08.10 00:31 Сейчас в теме
Замечательно!! +++ Все получилось. Правда, пока еще нет возможности проверить в отделе, завтра обязательно пущу в дело. А как создавать свои DBF-ки, например от поставщика?
7. Аркадий Кучер (Abadonna) 3659 11.08.10 00:40 Сейчас в теме
Если база работает на скуле, то ловчее и стороннюю базу сделать на SQL, а не на DBF.
Помню делал стороннюю, которая фиксировала все изменения в особо важных объектах (например, Справочник Контрагенты). Очень удобно, а чем лучше скуль - индексы у него не ломаются и можно напрямую из 1С через ADO подключиться
8. Роман (hrom) 65 11.08.10 05:00 Сейчас в теме
FERMER111,
Чтобы создать свою DBF-ку запусти внешнюю обработку ВыгрузкаШКвДБФизУТ.epf в 1С81 (или ВыгрузитьШКизТиС.ert для 1С77), там есть три кнопки: "выгрузить базу", "объединить с текущей базой", "тест чтения"
1. "выгрузить базу" - задаёшь имя файла выгрузки, нажимаешь кнопку "выгрузить базу" и все штрихкода сливаются в файл выгрузки - получаются два файла *.DBF, *.CDX
2. "объединить с текущей базой" - указываешь путь к существующему файлу DBF (в том же самом поле, что и в п.1 - т.е. имя файла выгрузки), нажимаешь "объединить с текущей базой". Штрихкод из 1С-ки сначала ищется в указанной DBF-ке, если не находит, то добавляет запись в эту же DBF-ку и соответствующую запись в индексный файл.
3. "тест чтения" - указываешь путь к существующему файлу DBF (или ничего не задаешь, если путь остался после п.1, или п.2), вводишь искомый штрихкод в поле слева от кнопки "тест чтения", нажимаешь кнопку "тест чтения". Тебе выдается сообщение с найденным названием товара, или предупреждение "штрихкод не найден".
9. Роман (hrom) 65 11.08.10 05:10 Сейчас в теме
Abadonna,
ну тем кто работает на SQL-е может быть и да.
Только современные одинэсники, творящие на 1С81 этот sql дяже и не нюхали :)
Вообще, идея моей базы - облегчить жизнь товароведу или кладовщику при приёмке большого количества НОВОГО товара, такое бывает, например, когда магазин только открывается. А когда магазин уже долго фунциклирует он, как правило, уже имеют свою внутреннюю базу штрихкодов и дополнительные внешние базы ему редко нужны. Пэтому ИМХО для моей внешней базы важнее быстрота подключения, простота переноса с одного компа на другой, универсальность обмена информации с другими базами. Для этих целей dbf-ки подходят больше, так как не требуют установки никакого дополнительного ПО и работают с любой базой.
10. Аркадий Кучер (Abadonna) 3659 11.08.10 05:24 Сейчас в теме
Только современные одинэсники, творящие на 1С81 этот sql дяже и не нюхали

Ну чё уж ты их так :D
Если 1С-сервер, то, как правило, и SQL
11. Александр Рытов (Арчибальд) 2652 11.08.10 07:44 Сейчас в теме
(10) Правильно он их. Видел ты восьмерочника, пользующегося прямыми запросами?
12. Аркадий Кучер (Abadonna) 3659 11.08.10 08:38 Сейчас в теме
13. Александр Рытов (Арчибальд) 2652 11.08.10 09:11 Сейчас в теме
(12) Это был не восьмерочник. Не примазывайся к младому поколению с девственными мозгами. :)
14. Аркадий Кучер (Abadonna) 3659 11.08.10 09:14 Сейчас в теме
(13) Ну, если честно, это и не одноэсник был :D
15. Екатерина Степанова (FERMER111) 11.08.10 10:18 Сейчас в теме
(5) Еще раз спасибо за подробные комментарии. Все работает.
16. Роман (hrom) 65 11.08.10 12:49 Сейчас в теме
(15) FERMER111,
:)
Выкладывай прицепом DBF-ку со своими добавлениями, пусть растет и ширится.
Если будет слишком большая, можно будет разбить на несколько файлов по диапазонам штрихкодов.
Например:
DBF№1 содержить кода от 8000000000000 до 8100000000000
DBF№2 содержить кода от 8100000000001 до 8200000000000
и так далее...
17. Екатерина Степанова (FERMER111) 11.08.10 23:19 Сейчас в теме
После Ваших инструкций - выложу с удовольствием, правда у нас не так много, пытаемся все настроить. Переходим на автоматизацию поэтапно. Кстати, хозяйственная база тоже была бы очень кстати. Сейчас пытаюсь договориться с поставщиками о таком обмене.
18. Роман (hrom) 65 12.08.10 05:36 Сейчас в теме
(17) FERMER111,
Прицепляю к этому сообщению DBF-ку со штрихкодами хозяйственного магазина: 19785 записей.
Есть еще базы с одеждой и оптикой (очки, линзы).
Прикрепленные файлы:
Хозтовар.zip
19. Екатерина Степанова (FERMER111) 12.08.10 06:07 Сейчас в теме
И снова - СПАСИБО! За хозмаг. Может еще посоветуете что-нибудь в таком вопросе: существует магазин хоз-строй товары. Заведена номенклатура в УТ 10.3, но товар не отштрихован. Сейчас планируем автоматизацию. Как упростить ввод штрихов? У меня мелькает мысль о том, что плюнуть на старую базу (очень много ошибок в наименованиях, много задвоений и т.п.), взять, скажем, Вашу базу, может быть базы поставщиков и завести все сначала через ввод остатков. Или проще будет привязка штрихов к сущ. номенклатуре. Наименований около 2500 включая многое в ассортименте.
20. Роман (hrom) 65 12.08.10 09:36 Сейчас в теме
(19) FERMER111,
Может в твоей ситуации немного облегчит жизнь вариант, когда ты будешь вводить штрикода сразу в регистр, а не через справочник. Открываешь меню Операции/Регистры сведений/Штрихкоды.
Открывается регистр Штрихкодов, нажимаешь "добавить новый элемент", указываешь тип штрикода (обычно EAN13), вводишь сам штрикод, выбираешь номенклатуру и если нужно, то характеристику и серию.
Чтобы не вводить вручную с клавиатуры цифры штрихкода, можно настроить сканер штрихкода на режим работы "в разрыв клавитуры" (позволяют не все сканеры) и НЕ подключать его через Сервис/торговое оборудование. Тогда считанный штрихкод будет ввиде цифр вводится в то поле, которое ты предварительно выделишь мышкой.
Наверное, такое вариант будет пошустрее работать, чем через справочник Номенклатура, или стандартную обработку "Обработки.ИдентификацияШтрихкодов".
21. Екатерина Степанова (FERMER111) 12.08.10 23:50 Сейчас в теме
Да, попробовала, здорово. Век живи, век учись. Хочу сейчас приобрести терминал сбора данных, пока представляю только теоретически что это за штука такая. Но надо осваивать и это. С компом по магазину не побегаешь.
22. king nc (patriarh_812) 10.05.11 22:29 Сейчас в теме
FERMER111,
Ну смотря какой магазин, я себе сделал удлинитель на 10 м., склад небольшой пока хватает.
Вопрос по поводу обработки, как ее закинуть в 7.7 ТиС 9.2 ?
Автору спасибо.
23. king nc (patriarh_812) 12.05.11 17:47 Сейчас в теме
При попытке записать найденный элемент пишет
Перед записью в элементе справочника "Номенклатура" необходимо заполнить "вид номенклатуры"!
хотя вид номенклатуры выставлен правильно по справочнику единиц измерения (стоит шт)
24. Сергей (Che) Коцюра (CheBurator) 3370 12.05.11 17:49 Сейчас в теме
(23) вид номенклатуры - это не единица измерения!!!
25. king nc (patriarh_812) 12.05.11 20:39 Сейчас в теме
Да точно, спасибо.
Но номенклатуру все равно не добавляет.
Кроме того заменил в документе ПоставлениеТоваровУслуг функцию СШКНеизвестныйКод на предложеную автором, но все равно открывается обработка ИдентификацияШтрихкодов, наведите в правильное русло=)
И еше автор пишет Для 1С77 прилагаю фрагмент кода, по нахождению нужной записи в моей базе товаров:, если можно поподробней как эту обработку к 7.7 привязать?
26. Сергей (Che) Коцюра (CheBurator) 3370 12.05.11 20:48 Сейчас в теме
в 8_2_14_439 можно внешние источники данных - типа этой автономной ДБФки подсоединять и отображать и прочее типа как штатно...
27. king nc (patriarh_812) 12.05.11 20:50 Сейчас в теме
у меня стоит 8.1.15.14, может быть изза версии?
28. петр иванов (zerx) 17.09.11 12:18 Сейчас в теме
А можно файлики еще где-нибудь выложить, а то скачать не получается(
29. Andrey Berdnik (lambda-tmn) 04.09.12 15:54 Сейчас в теме
Здравствуйте.

А работает ли эта база на 8.2 ???
30. Shrek Shrek (Shrek2015) 04.09.12 16:07 Сейчас в теме
31. Андрей Бердник (lambda) 05.09.12 19:59 Сейчас в теме
Подскажите есть ли ветка в форуме по этой обработке и базе??
32. Сергей Камнев (Sergey Kamnev) 17.10.12 16:33 Сейчас в теме
Добрый день, hrom.

У меня есть несколько вопросов по базе продуктов:
1. В базе данных содержатся розничные или оптовые товары?
2. Товары однозначно идентифицированы названием? То есть может быть товар "Кисель", но это может быть как напиток в жидком состояние, так и в порошкообразном.
3. Есть ли возможность получить хотя бы только штрих-коды, чтобы понять на сколько данная база мне подходит.
33. Сергей Камнев (Sergey Kamnev) 18.10.12 18:41 Сейчас в теме
О! Ещё забыл вопрос задать.

В базе товары только Российского производства или импортного тоже?
34. Алексей М. (allesvet) 17.07.13 12:22 Сейчас в теме
Как скачать базу? За 50 рублей? Но какой смысл ложить сюда 500 стартмани если нужна только база. Как положить 500 стартмани????
35. Алексей М. (allesvet) 17.07.13 12:23 Сейчас в теме
Прошу прощение как положить 50!!!? стартмани.
36. Николай Николаевич Стадник (shtepin) 4 25.06.15 21:58 Сейчас в теме
Есть ли возможность выборочно проверить наличие штрих кодов в базе?
37. Сергей Соколов (sfs1981) 12.12.15 23:13 Сейчас в теме
Здесь готовая база Ean-13 все о потребительских товарах штрих-кодов, с API, которое подходит для 1С. 10млн. записей.
38. Яков Манченко (Икар) 09.11.16 19:42 Сейчас в теме
Конечно база не плохая, но названия товаров как всегда хромает....
То кавычки с пробелами, то названия корявые...
Нет единого стиля написания названия товара.
Почему бы не взять и написать
1. Вид товара
2. Название товара
3. Упаковки и ед. измерения
4. Производитель
Получилось бы например Пиво Жигулевское 4% 0,5л Москва
И сразу и искать проще...

А то даже ж/б у Вас пишется и так и ж\б
39. Роман (hrom) 65 14.02.17 08:18 Сейчас в теме
Обновил базу супермакета до 290777 записей.
Написал пример обработки для УФ.