|
Помогите найди причину задваивания номеров при обмене с сайтом | ☑ | ||
---|---|---|---|---|
0
mvgfirst
20.06.12
✎
11:54
|
Ситуация:
Обратились ко мне за помощью, у ребят, при загрузке с сайта заказов происходит дублирование номеров документа "Заказ покупателя". Сайт на битриксе. Обмен используют стандартный через CommerceML. Обработку стандартную им кто-то немножечко "допилил" - но я посмотрел, допиливание не касается установки номеров документов. Обработка по обмену запускается в виде регламентного задания с интервалом в 300 сек. База SQL, версия конфигурации УТ 10.3.13.2 (так же немного допиленная, но не в части формирования номеров документов) Сначала грешили на тот факт что одновременно с регламентным заданием - пользователи самостоятельно запускают обмен и из-за этого создаются заказы с одинаковыми номерами. Но сегодня ручной запуск отключили - а дубли продолжают появлятся. Суть работы обработки такова: сначала в создаются все новые документы которые должны быть загружены, затем в цикле наполняются и уже в конце загрузки, проходит циклом по массиву документов и выполняет запись. Если пробовать создавать Заказ в ручную - создать дубль невозможно (проверял). Если после того как дубли появляются, обработка загрузки пытается загрузить новую порцию заказов - так же отваливается по ошибке (Номер не уникальный). Т.е. если мыслить логически - то ни пользователь ни обработка не должны создавать дубли номеров - но они есть.... и после устранения - появляются по новой. Присваивать последнему документу максимальный номер тоже пробовал. Проблему не устраняет. Помогите найти причину, или хотя бы дайте версий почему могут образовываться дубли... Версия платформы 8.2.15.294 |
|||
1
mvgfirst
20.06.12
✎
12:13
|
Ну хотя бы версий подкиньте, где поискать!
Просмотрел исходный код обработки "ОбменССайтом", на предмет наличия конструкцции типа: Документ.ОбменДанными.Загрузка = Истина; |
|||
2
mvgfirst
20.06.12
✎
12:16
|
Насколько я понимаю она должна отключать контроль уникальности номеров.
Но таких конструкций нет. Так же, я понимаю что каждому вновь созданному документу 1С резервирует номер документа, и возможно если двумя независимыми процессами одновременно создавать новые дкументы "ЗаказПокупателя" - то возможно будет зарезервировано два одинаковых номера. Но ведь при попытке их записать одному из документов будет выдан отказ в записи с ошибкой "Номер не уникален". Т.е. насколько я могу понять - дубли не должны появится в журнале документов. Однако они есть... |
|||
3
zak555
20.06.12
✎
12:17
|
что за сайт ??
|
|||
4
mvgfirst
20.06.12
✎
12:17
|
(3) Это принципиально? Сайт торгует моб. телефонами.
|
|||
5
zak555
20.06.12
✎
12:18
|
(4) конечно - посмотреть, что там за сервис настроен
|
|||
6
mvgfirst
20.06.12
✎
12:19
|
Причем, вся эта ситуация появилась несколько дней назад. А точнее 15-го числа. В этот день, база переехала на новый сервер. Перенос выполняел не я, а админы аутсорсинговой конторы....
До перезда никаких проблем такого рода не возникало. |
|||
7
mvgfirst
20.06.12
✎
12:20
|
(5) Не уверен что проблема на стороне сайта. Сайт вообще не изменялся в течение этого времени. Как отдавал информацию в CML так и продолжает отдавать.
|
|||
8
zak555
20.06.12
✎
12:21
|
(7) давай адрес - сейчас посмотрю
|
|||
9
mvgfirst
20.06.12
✎
12:23
|
(8) Изини - таких полномочий (адреса раздавать) мне не предоставили.
|
|||
10
mvgfirst
20.06.12
✎
12:24
|
Если объяснишь что собрался там смотреть - скажу. Ни лично я не понимаю при чем тут сайт? Если все операции с базой выполняются на стороне 1С?
|
|||
11
mvgfirst
20.06.12
✎
12:35
|
Версии, господа! Должны быть версии...
Проверил "ПривилегированныйРежим" - тоже не используется. Доступа к консоли Сервера 1С у меня нет. |
|||
12
sda553
20.06.12
✎
12:43
|
а в жр что делается? по две записи на док? или вначале все доки, а потом дублем опять все доки?
|
|||
13
mvgfirst
20.06.12
✎
13:01
|
(12) "А слона то мы и незаметили"... в журнал регистрации не догадался заглянуть... ща изучу...
|
|||
14
mvgfirst
20.06.12
✎
13:03
|
Толи я не туда смотрю, то ли нет записей в журнале регистрации по данному обмену.
|
|||
15
anddro
20.06.12
✎
13:09
|
(6) у вас в связи с переездом не могла возникнуть ситуация, когда с одной базой SQL работает два разных сервера приложений?
|
|||
16
mvgfirst
20.06.12
✎
14:23
|
(15) Ситуация которую вы описываете вполне вероятна. Т.к. 1С эти ребята арендуют у аутсорсеров... или как их назвать.. т.е. платят за сервак на котором уже работает 1С, им ее там подключают, отключают, переносят между серверами. Всю эту работу делают админы компании аутсорсера. Поэтому ни доступа к консоли сервера ни к MS SQL нет.
|
|||
17
mvgfirst
20.06.12
✎
14:26
|
Я просто никак не могу понять: в результате чего (каких операций) возможно появление в журнале документов двух документов с одинаковым номером.
Знаю что такая возможность существуют когда выполняют обмен/загрузку... но для этого якобы надо включить "ОбменДанными.Загрузка = Истина".. я не нашел нигде (в рамках работы обработки )этой инструкции. не исключено что плохо искал. |
|||
18
S_H_I_Z
20.06.12
✎
14:43
|
сайт пишет напрямую в SQL? без Com?
Тогда очевидно что из 1с будут выдаваться номера согласно своей нумерации и они будут повторяться. Если да - то нужно в 1с перед открытием формы обязательно вызывать процедуру из глобального привелигилированного модуля с обновлением номеров. |
|||
19
sda553
20.06.12
✎
14:52
|
(14) ну в крайнем случае есть технологический журнал, но это для тех, у кого черный пояс
|
|||
20
mvgfirst
20.06.12
✎
16:59
|
(19) Технологический журнал, наверняка, как и консоль Сервера Предприятий недоступен.
(18) Я в (0) написал обмен идет по стандарту CommerceML - напрямую в базу ничего не пишет. Сайт вообще никуда ничего не пишет. Он по запросу из 1С формирует CML (XML) файл определенной структуры, а уже 1С в обработке "ОбменССайтом" выполняет операции по разбору файла и создании документов. Участие сайта в этом процессе минимальное и никакого отношения к номерам документов сайт не имеет. |
|||
21
mvgfirst
20.06.12
✎
17:00
|
(20) По словосочетанием "Сервер Предприятий" - имел ввиду "Сервер Приложений 1С"
|
|||
22
sda553
20.06.12
✎
17:23
|
техножурнала нет, журнала регистрации нет, консоли недоступны. Есть хоть что то в этой темной комнате?
|
|||
23
mvgfirst
20.06.12
✎
18:23
|
(22) В том то и дело.. что исходные данные таковы.
Смущает что все работало и дублей небыло... Теперь все работает - но дубли есть. За последний час в базе появилось дополнительно еще 15 дубликатов. Т.е. каким-то образом дубли продолжают появлсться, игнорируя контроль уникальности. |
|||
24
Михаил Козлов
20.06.12
✎
18:47
|
Запустите обмен руками и посмотрите в отладчике, как записывается новый заказ (номер документа после записи).
|
|||
25
mvgfirst
20.06.12
✎
19:36
|
(24) Ситуация осложняется тем что не каждый номер дублируется при загрузке.
Отладчик запускал. До момента записи списка документов в каждом из них номер пустой. Если шагнуть отладчиком на следующий шаг (т.е. попытаться записать) - то тут как повезет. Документ или записывается и тогда в реквизите "Номер" установлен сформированный номер документа, или же если не повезет - вылетает исключительная ситуация "Номер не уникальный" и процесс загрузки обрывается. Возможно я недостаточно глубоко залез в процедуры и функции типовой конфигурации - но даже посидев с отладчиком я не увидел возможности - каким образом можно сохранить документ с дублированным номером |
|||
26
anddro
20.06.12
✎
19:52
|
По документу можно понять ( реквизит автор, например) как он был создан? Дубли только по о тем документам, что были созданы при загрузке, или один документ с не уникальным номером создан оператором а другой при загрузке?
|
|||
27
Mashinist
20.06.12
✎
19:53
|
(15) похоже на правду
Нечто подобное было когда к одной базу по ошибке подключили два сервера 1с и часть пользователей там работала, а часть на новом |
|||
28
anddro
20.06.12
✎
19:59
|
Подскажите (сам не сталкивался) при обмене с битриксом он соединяется с базой по com, или база опрашивает битрикс и загружает заказы?
|
|||
29
mvgfirst
20.06.12
✎
21:16
|
(27) Старый сервер не доступен. Пробовали подключится - непускает. Сделали вывод что его таки "потушили".
Скачал обработку "КонсольЗаданий", подключился - посмотрел заданий ровно столько - сколько должно быть. Запускаются согласно расписания. (28) В данном случае база соединяется с битриксом забирает файл и сама его "парсит". (26) В том то и дело что по документам понять ничего нельзя. Заказы номера которых дублируются имеют совершенно разные свойства, даже не похожи друг на друга. Единственное сходство между ними это 1С-овский номер документа который дублируется. Причем их бывает ровно два. Т.е не три и не четыре. Два не больше. Так же известно что номера дублируются у документов в рамках одного дня. Может это какой-то глюк платформы? Где-то глючит система резервирования номеров документов? Возможно ли такое? И если да - можно ли ее как-то обнулить или сбросить на 0. И мне по прежнему непонятно - почему контроль уникальности номеров не срабатывает когда в одну базу записывается два одинаковых номера документа. (Галка "Контроль униклальности" - на заказе стоит) |
|||
30
mvgfirst
20.06.12
✎
21:18
|
Иногда дублируются номера заказов не только загруженных с сайта, но и номера созданных в ручную.
В их базе есть возможность создать заказ в ручную менеджером, при этом сам заказ не связан с сайтом и относится к оффлайновой торговле. В этом случае появляется еще один заказ, с таким же номером но загруженный из интернета. |
|||
31
tridog
20.06.12
✎
21:29
|
Ответ уже был дан в (15). И это единственный вариант, при котором платформа позволит записать несколько документов с одинаковым номером. Даже при ОбменДанными.Загрузка = Истина не даст она вам номера задублировать, и даже в привелигированном режиме.
Ситуация с несколькими серверами на один SQL вполне позволит провернуть такую опу, когда юзер будет создавать документ на одном из серверов, а регламентное задание запустится на другом. У каждого из серверов в этом случае будет свой менеджер нумерации. |
|||
32
tridog
20.06.12
✎
21:32
|
+(31) Это все справедливо конечно же, только тогда, когда в пофигураторе для документа установлена галочка "Контроль уникальности". Если она снята - то хоть обдублируйся
|
|||
33
NDN
20.06.12
✎
21:35
|
(0) РИБ имеется у базы?
|
|||
34
mvgfirst
21.06.12
✎
12:58
|
(32) В (0) я писал что признак установлен. Так же я писал что попытки создать дубликат в ручную пресекаются системой. Т.е. механизм контроля дублей работает.
Но сами дубли появляюстя. Написал письмо админам аутсорсиноговой компании о работе двух серверов одновременно. Жду реакции. (33) РИБ - отсутствует. Все работают через RDP в базе напрямую |
|||
35
mvgfirst
21.06.12
✎
15:54
|
Итак, не долго думая заблокировали доступ на сервер, сменив пароль для получения файла обмена.
Дубли прекратились (по крайней мере с момента блокировки ни одного нового нет). От админов получил четкий и лаконичный ответ "Выключил сервис старого сервера". Походу он таки работал подлец! На данный момент проблема решилась. Но "подежурить" еще надо ... вдруг что всплывет :) |
|||
36
mvgfirst
25.06.12
✎
14:44
|
Как ни странно... Дубли продолжают появлятся.
Хотя админы сервера утверждают что другой (старый) сервер Предприятия остановлен. Поэтому я бы не отказался услышать еще версии по поводу того что может быть причиной возникновения дублей. |
|||
37
mvgfirst
25.06.12
✎
14:56
|
Может в настройках регламентного задания есть какой-то свой кеш номеров? Который в какой-то определенный момент разошелся с кешем номеров базы?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |