Имя: Пароль:
1C
1С v8
Пропущенные номера документов
↓ (Волшебник 22.07.2024 15:24)
0 Despierto
 
22.07.24
13:45
Всем хорошего дня и отличного настроения!
Подскажите как найти пропущенные номера документов ЧекККМ?
1 Волшебник
 
22.07.24
13:46
Запросом в цикле
3 Ногаминебить
 
22.07.24
13:55
Сделать виртуальную таблицу из всех номеров и соединить ее с таблицей имеющихся. И через естьнулл отобрать несовпавшие.
4 Despierto
 
22.07.24
14:10
(3) А как сделать виртуальную таблицу из всех номеров?
5 Волшебник
 
22.07.24
14:24
(0) Что Вы будете делать с этими пропущенными номерами дальше?
6 Ногаминебить
 
22.07.24
14:29
(4) Ну к примеру тот же автономерзаписи. И еще преобразовать номера чеков ккм к числам. Там же лидирующие нули надо прибить. Никто не будет разжевывать задачу вплоть до кода, да и сама задача простая, многократно в интернетах разжеванная. Яндекс подскажет.
7 vde69
 
22.07.24
14:32
(0) что считать пропуском?

если номер это число - то довольно просто, а вот если номер строка, да еще переменной длины, то без четкого алгоритма "правильной" нумерации задачу не решить
8 maxab72
 
22.07.24
14:49
Можно одним запросом.
1. делаем таблицу всех номеров из документов,
2. Присоединяем к ней ее же про правилу ПО Таб2.Номер < Таб1.Номер
3. Ищем максимальные номера Таб2.Номер
4. Определяем разницу между Таб1.Номер и Таб2.Номер
5. Где разница больше 1, там столько номеров и пропущено.
9 Serg_1960
 
22.07.24
15:00
Всё гораздо проще :)
Сгенерировать последовательность номеров в пространстве нумерации нужного вида документов и объединить с фактическими номерами документов в БД.
10 Волшебник
 
22.07.24
15:04
(9) Точно объединить? Может вычесть одно множество из другого?

И не проще ли (1) ? Поставил на ночь, нашёл все номера. Дальше делай что хочешь...
11 vde69
 
22.07.24
15:11
для реализации нужно 2 функции
1. правильная сортировка (которая сортирует номера по возврастанию), но тут сложность - мы не знаем, что именно имеет в виду автор
2. процедура определения разницы двух номеров

далее все просто
сортируем существующие и определяем разницу между текущим и следующим номером, если больше 1 то есть пропуски
12 Волшебник
 
22.07.24
15:20
(11) >> но тут сложность - мы не знаем, что именно имеет в виду автор

Это ещё полбеды. Главная беда в том, что автор сам не знает, что он хочет.
13 Garykom
 
22.07.24
15:24
(0) Оптимальней всего методом деления пополам
wiki:Метод_бисекции

"ПоследнийНомерВБлоке" - "ПервыйНомерВБлоке" = "КоличествоНомеровВБлоке?
14 АгентБезопасной Нацио
 
22.07.24
15:25
(13) и зачем ему пол-номера?
15 maxab72
 
22.07.24
15:26
"автор сам не знает, что он хочет." автор хочет, чтоб было красиво.

Работал я в прошлом тысячелетии в одной фирме. И там был старенький сервер, который уже тянул еле-еле. Мы с местным сисадмином написали заявку на выделение денег на новый хороший сервер. Пришел главный шеф  к нам в серверную, глянул на сервер и заявил: "Разумеется он будет плохо работать. Вон какой обшарпанный и некрасивый". И поставил нам задачу его срочно перекрасить, даже денег выделил на пару аэрозольных баллончиков... После этого я оттуда ушел.
16 El_Duke
 
22.07.24
15:26
(7) Срезал автора на взлете
17 maxab72
 
22.07.24
15:28
(16) У чеков ККМ? Там число генерится.
18 Волшебник
 
22.07.24
15:29
(15) Ну вы и фантазёр... Прикольную хохму придумали!
19 Despierto
 
22.07.24
15:29
(5) Если есть пропущенные номера НомерЧекаККМ, значит эти чеки были пробиты, но в 1С эта информация не дошла. То есть в базе есть чеки, которые числятся непробитыми, а на ККМ они пробиты. Это я и хочу исправлять.
20 Волшебник
 
22.07.24
15:30
(19) Вам уже накидали решений. Можете приступать к выполнению работы.
21 maxab72
 
22.07.24
15:31
(18) К сожалению, это правда. Фирма называлась "Штампакс". Занималась производственными услугами сторонним организациям на базе штамповочного оборудования одного вертолетного завода.
23 Волшебник
 
22.07.24
15:32
(21) Ой, перестаньте....
24 Despierto
 
22.07.24
15:32
(7) Пример пропуска:
131001
131002
131004


Номер - это число
25 El_Duke
 
22.07.24
15:33
(19) Лучше не лезь
Знаешь старую мудрость прогов и сисадминов ? "Не трожь технику и она тебе не подведет !!!"
26 Despierto
 
22.07.24
15:52
Всем, кто отвечал по сути и пытался помочь - спасибо за ответы!
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой