Консультация № 90504
07.06.2007, 23:01
0.00 руб.
0 4 4
Уважаемые эксперты подскажите, пожалуйста, почему сбивается нумерация в 1С. Бухгалтерии 7.7? Например, справочник Номенклатуры и документы. Некоторые элементы справочника и некоторые документы заносятся в базу данных с помощью внешней обработки, может из-за этого? И как это поправить? При непонятно каких условиях эта обработка начинает давать сбой в виде (... код не уникален)

Обсуждение

Неизвестный
08.06.2007, 00:10
общий
это ответ
Здравствуйте, Xleo!
Если внешняя обработка – это стандартный tranref.ert, то есть смысл при загрузке включить синхронизацию по кодам – создавать новый код элемента. А поправить это дело, уже сделанное, можно той же обработкой путем выгрузки справочников в файл и их обратной загрузкой, но уже без синхронизации, тогда все элементы встанут по порядку. А если обработка самодельная, тогда надо спросить у того, кто ее сотворил…
Неизвестный
08.06.2007, 02:33
общий
это ответ
Здравствуйте, Xleo!

Все дело в обработке. Необходимо разобраться как в ней происходит нумерация.
Я бы копал так:
1. найти место где происходит синхронизация по коду. так как при переносе мы должны проверить существовал элемент в справочнике или он новый. Ищем что то типа "Если ЭлементСправочника.НайтиПоКоду(Код) тогда...". Проверяем корректность работы этого куска.
2. Ищем кусок создания нового элемента. Что то типа "ЭлементСправочника.Новый()"
На 90% уверен, что там стоит принудительная нумерация, т.е. код элемента задается программно по какому то определенному принципу. Вот здесь надо проверить что дает сбой.
Удачи.
Неизвестный
08.06.2007, 08:47
общий
это ответ
Здравствуйте, Xleo!
1. Чаще всего нумерация сбивается при потыках вручную задать код справочника,
или номер документа, с последующим желанием отдать функциию генерации
обратно стандартным средствам 1С.
2. поравить это довольно просто, после функции Новый() создающего объект справочника или документ :
для справочника вызываем УстановитьНовыйКод()
для документа УстановитьНовыйНомер().

Удачи.
Неизвестный
08.06.2007, 11:18
общий
это ответ
Здравствуйте, Xleo!
1. В справочниках код сбивается чаще всего, если в конфигураторе задано "Серии кодов в пределах подчинения". Тогда в разных группах будут элементы с одним номером. При переносе элемента в другую группу в группе получаются 2 элемента с одним номером. Эти элементы (без установки нового кода ) не редактируются ни вручную, ни программно, и дают код не уникален
2. Вторая причина - вручную редактируют код или номер. Чаще всего бухи в поле номера механически вписывают дату документа, или чего-то еще. Правится очень сложно. Необходимо все сбойные номера перенумеровать и в процедуре ВводНового() УстановитьНовыйНомер("000");, т.е. в качестве префикса принудительно задаем нули(если номер текстовый). Для того, чтобы бухи не сбивали номер, необходимо во всех документах и справочниках поставить "ПропускатьПриВводе", хотя супротив бухов это слабо помогает.
3. Иногда помогает такое шаманство (ПРОВЕРИТЬ СНАЧАЛА НА ТРЕНИРОВОЧНОЙ БАЗЕ, СДЕЛАТЬ КОПИЮ БАЗЫ). После присвоения правильных номеров документам, отменить птичку КонтрольУникальности, изменить периодичность нумерации, сохранить данные, вернуть периодичность нумерации и контроля уникальности, сохранить данные и внимательно прочитать список ругательств конфигуратора (если они будут, то устранить, и повторить). При этом пересчитываются нумераторы, и иногда они восстанавливаются. Если документу присвоен нумератор, то одновременно это нужно делать на всех документах, имеющих этот нумератор.
Форма ответа