[ОТВЕТИТЬ]
22.08.2007 15:52
OlegON
 
С радостью обнаружил, что в магазе и офисе фигачат встречные документы, т.е. с пересекающимися номерами. Раньше лечил прогоном скрипта, который пробивал в магазе правила, при которых в номер дока включался номер базы в которой он генерится. Тут такого не введено пока, кто как с этим воюет?
22.08.2007 16:00
akonev
 
дык префиксами и воевали всегда. надо уже срочно вводить.
22.08.2007 16:01
Propil
 
У меня:
1) в справочнике в параметрах создания документов прописаны префиксы для всех мест хранения
2) разрулены права в админ модуле для пользователей магазинов и офиса - где можно создавать документ, а где лишь редактировать
3) если необходимо создавать и в офисе и в магазине, то в справочнике этих баз прописываю разную длину номера документа (6 цифр в офисе и пять в магазине, к примеру)
Если накосячили, то в админском модуле меняем идентификатор
22.08.2007 16:07
Mtirt
 
Я при создании нового магазина в ЦО проставляю префиксы для него и рассылаю. После этого меняю в ЦО.
Теперь вот еще склад добавился...
22.08.2007 16:18
Mihon
 
Все ручками...
В ЦО в формате ц + №маг + ПН (для ПН)
В самом магазине №маг + ПН
вроде без проблем.
кстати, если номер дойдет до ПН999999,
следующая накладная с каким номером создастся? :)
22.08.2007 17:05
YuraZ
 
Цитата:
Mihon Все ручками...
В ЦО в формате ц + №маг + ПН (для ПН)
В самом магазине №маг + ПН
вроде без проблем.
кстати, если номер дойдет до ПН999999,
следующая накладная с каким номером создастся? :)
Выдаст ошибку
30.08.2007 15:17
Владимир
 
INSERT INTO SUPERMAG.SADOCDEFAULTS ( DOCTYPE, LOCATION, NUMBERSIZE, NAMEPREFIX )
SELECT SUPERMAG.SSDOCTYPES.DOCTYPE, SUPERMAG.SMSTORELOCATIONS.ID,10, TO_CHAR(SUPERMAG.SMSTORELOCATIONS.id || to_char('01'))
FROM SUPERMAG.SMSTORELOCATIONS, SUPERMAG.SSDOCTYPES;
30.08.2007 15:29
YuraZ
 
Цитата:
Владимир INSERT INTO SUPERMAG.SADOCDEFAULTS ( DOCTYPE, LOCATION, NUMBERSIZE, NAMEPREFIX )
SELECT SUPERMAG.SSDOCTYPES.DOCTYPE, SUPERMAG.SMSTORELOCATIONS.ID,10, TO_CHAR(SUPERMAG.SMSTORELOCATIONS.id || to_char('01'))
FROM SUPERMAG.SMSTORELOCATIONS, SUPERMAG.SSDOCTYPES;
Может не совсем хорошо для всех документов одинаковый префикс?
30.08.2007 15:30
Mtirt
 
Так в префиксе еще бы и тип документа увидеть...
30.08.2007 19:50
OlegON
 
Суть не в том, чтобы разово пробить префиксы, у меня скрипт на это дело уже был, а в том, чтобы поддерживать разницу с офисом. Т.е. тоже пришел к схеме, что рассылка, потом перебивание в офисе на новые.
31.08.2007 03:32
isi
 
Тоже рассылка из ЦО и потом перебиваем в ЦО
12.11.2008 12:48
skier2
 
Вопрос: правила генерации - каким образом их задавать? к примеру, если совпадает количество цифр в разных документах - это к чему приведет? или не к чему? к примеру, у меня правило для приходной накладной АА_ 7 знаков, для сличительной ведомости - АА_ 7 знаков (где АА - сокращенное название МХ). Их не стоит поменять - к примеру, сделать 7 и 6 знаков. К чему спрашиваю - не могу передать сличительные ведомости в ЦО - выдает ошибку о совпадении номеров документов...
12.11.2008 13:16
kadr
 
Совпадение номеров для разных типов это допустимо, текст ошибки надо прикладывать полностью, если сам не смог разобраться, скорее всего текст что-то вроде этого "два разных объекта имеют одинаковые идентификаторы" что означает что два объекта созданные в базах с разными DBID, но с одни номером и одинаковым типом
12.11.2008 13:18
ReDHawK
 
Юра Жданов в свое время написал програмку для заполнения префиксами базы. Прикладываю, мож кому пригодится. А в последних версиях СМ2000 начиная с 1.026.2 создана еще колонка "внешний префикс" (программка заполняет только внутренний). Так же при создании МХ создана функция автозаполнения префиксов данных колонок. Скрин прикладываю.
Миниатюры
Нажмите на изображение для увеличения
Название: префикс.JPG
Просмотров: 373
Размер:	34.3 Кб
ID:	359  
Вложения
Тип файла: rar Prefics.rar (214.1 Кб, 80 просмотров)
12.11.2008 16:39
konst
 
При приеме сличительных ведомостей может еще ругаться на одинаковый номер приказа о проведении инвентаризации (больше похоже именно на эту ошибку). У себя в сети мы номер приказа генерим по принципу
ХХХ-ГГММДД, где ХХХ - короткое имя МХ (в нашем случае - префикс документа), ну и соответсвенно ГГММДД - дата начала проведения инвентаризации... Операторы уже это выучили... проблемы возникают крайне редко (и то как правило в МХ в рамках проведения одной инвентаризации в разных описях разные приказы... дата после 1200 другая....)
12.11.2008 17:14
akonev
 
Цитата:
skier2 Вопрос: правила генерации - каким образом их задавать? .... Их не стоит поменять - к примеру, сделать 7 и 6 знаков...
7 и 6 - ни к чему.
стоит ввести в префикс номер МХ и, возможно, признак, где создан документ: в магазине или в офисе.
общую длину номера документа не надо делать больше 11, кажется, символов - перестанет вмещаться в ширину колонки в стандартных отчетах и хвост будет переноситься на следующую строчку.
14.11.2008 09:45
Mihon
 
Цитата:
Andrew_Konev 7 и 6 - ни к чему.
стоит ввести в префикс номер МХ и, возможно, признак, где создан документ: в магазине или в офисе.
общую длину номера документа не надо делать больше 11, кажется, символов - перестанет вмещаться в ширину колонки в стандартных отчетах и хвост будет переноситься на следующую строчку.
Абсолютно согласен. Плюс добавить в префикс тип документа - ПН, РН, СВ и т.д.
Центр. база для м/х №1 - ц01ПН000000, ц01РН000000
Маг. база м/х №1 - 01ПН000000, 01РН000000
Центр. база для м/х №2 - ц02ПН000000, ц02РН000000
Маг. база м/х №2 - 02ПН000000, 02РН000000
14.11.2008 16:09
ReDHawK
 
С этим никогда не парился, создавал префиксы одни на МХ, проверка идет на совпадение номера среди этого типа документов, то есть номер приходой накладной среди приходных накладный и т.д. Всегда настраивал:
Центр. база для м/х №1 - в ПН - ЦО, в РН - ЦО
Центр. база для м/х №2 - в ПН - ЦО, в РН - ЦО
Маг. база м/х №1 - в ПН - 01, в РН - 01
Маг. база м/х №2 - в ПН - 02, в РН - 02
а лучше в магазинах буквенный префикс типа М1 или что-то типа того.

Твой вариант привлекательнее тем, что понятно: где создан, что за документ, для какого МХ. Но это же пипец как геморойно создавать для каждого магазина, если магазинов несколько, то ни один час убьешь ((
14.11.2008 21:35
skier2
 
вопрос чайника. а зачем создавать ЦО для каждого МХ? разве оно не одно на всех?
17.11.2008 08:56
Mihon
 
Цитата:
ReDHawK С этим никогда не парился, создавал префиксы одни на МХ, проверка идет на совпадение номера среди этого типа документов, то есть номер приходой накладной среди приходных накладный и т.д. Всегда настраивал:
Центр. база для м/х №1 - в ПН - ЦО, в РН - ЦО
Центр. база для м/х №2 - в ПН - ЦО, в РН - ЦО
Маг. база м/х №1 - в ПН - 01, в РН - 01
Маг. база м/х №2 - в ПН - 02, в РН - 02
а лучше в магазинах буквенный префикс типа М1 или что-то типа того.

Твой вариант привлекательнее тем, что понятно: где создан, что за документ, для какого МХ. Но это же пипец как геморойно создавать для каждого магазина, если магазинов несколько, то ни один час убьешь ((
Все делалось намного легче... Сначала придумали схему, потом настраивали префиксы в момент открытия каждого магазина как в ЦБ, так и в базе магазина. Ну, минут 5-10 на это уходило.

Цитата:
skier2 вопрос чайника. а зачем создавать ЦО для каждого МХ? разве оно не одно на всех?
Ты просто не так понял. ЦО в большинстве случаев действительно одно.
Имеется ввиду, что ты документ (ПН, РН) на место хранения "Маг 1" можешь создать как в ЦБ, так и в базе магазина.
И если префиксы будут одинаковые, то может возникнуть ситуация: Создали (по неизвестной причине) документ в ЦБ с автоматическим номером МАГ1ПН001451. Через десять минут в базе магазина операторы тоже создали документ, тоже с авто-номером МАГ1ПН001451. Подняли статус, почтовик успешно перезаписал тот документ, который сделали в ЦБ. Документ утерян.
17.11.2008 10:40
ReDHawK
 
Цитата:
Mihon Все делалось намного легче... Сначала придумали схему, потом настраивали префиксы в момент открытия каждого магазина как в ЦБ, так и в базе магазина. Ну, минут 5-10 на это уходило.
Ну 5-10 минут это если настраивать только 3 самых необходимых документа: ПН, РН, АП
а когда нужны почти все документы, то уйдет времени намного больше.
17.11.2008 11:22
kadr
 
Цитата:
Mihon ...
И если префиксы будут одинаковые, то может возникнуть ситуация: Создали (по неизвестной причине) документ в ЦБ с автоматическим номером МАГ1ПН001451. Через десять минут в базе магазина операторы тоже создали документ, тоже с авто-номером МАГ1ПН001451. Подняли статус, почтовик успешно перезаписал тот документ, который сделали в ЦБ. Документ утерян.
Документ не утерян, а получает отлуп от ЦБ с ошибкой "два разных объекта имеют одинаковый идентификатор", т.е. тип и номер совпадают, а DBID разные
17.11.2008 16:22
Mihon
 
Цитата:
kadr Документ не утерян, а получает отлуп от ЦБ с ошибкой "два разных объекта имеют одинаковый идентификатор", т.е. тип и номер совпадают, а DBID разные
Точно, точно. Но все равно, ничего хорошего:)
18.11.2008 10:16
deucel
 
Цитата:
ReDHawK Твой вариант привлекательнее тем, что понятно: где создан, что за документ, для какого МХ. Но это же пипец как геморойно создавать для каждого магазина, если магазинов несколько, то ни один час убьешь ((
Мы к примеру ставим префиксы на MX - т.е. например в ЦС стоит одинаковый префикс для склада и всех МХ для которых могут быть созданы документы.
По префиксу мы видим где был создан документ.
По поводу - не один час
для ЦО (примеры)

Создание префиксов документов для магазина.
Код:
DECLARE
MID NUMBER(3) := '&Magazin_ID_number';
BEGIN
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'OR', MID, 'ЗПЦ', 6, NULL); 
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'CO', MID, 'КЗЦ', 6, NULL); 
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'AC', MID, 'АЦ', 6, NULL); 
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'WI', MID, 'ПНЦ', 6, NULL); 
	COMMIT;
END;
/
Для всех магазинов по типу
Код:
DECLARE
BEGIN
    DELETE FROM SADOCDEFAULTS WHERE DOCTYPE ='WI';
    COMMIT;
    FOR c_rec IN (SELECT ID FROM SMSTORELOCATIONS WHERE ID > 1 ORDER BY NAME)
   LOOP
        INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND )
        VALUES ( 'WI', c_rec.id, 'ПНЦ', 6, NULL);
        COMMIT;
   END LOOP;
END;
/
04.10.2011 10:33
artyom
 
А как удалить изменить префиксы уже созданных документов?
04.10.2011 10:49
Mtirt
 
Зачем? Чтобы потерять ссылочную целостность базы данных?
04.10.2011 11:21
artyom
 
Для работы с имеющейся обработкой для выгрузки в 1C.
04.10.2011 11:23
Mtirt
 
А не проще переделать имеющуюся обработку выгрузки в 1С?
04.10.2011 11:25
artyom
 
В данном случае к сожалению нет.


Опции темы


Часовой пояс GMT +3, время: 22:54.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.