7.7 ТиС 7.7 Ошибка:Нарушены правила уникальности документов!

Тема в разделе "Обмен данными в "1С:Предприятие 7.7"", создана пользователем maxsprite, 30 сен 2010.

  1. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Извиняюсь за размер, но на тэг "size" форма ответа отказалась реагировать, а потом и вовсе пропала кнопочка изменить...
  2. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    UP
    Попробовал в фирме от ТР- оставить только Т-. Поставил Префикс "А" создаю накладную... Создаёт (Т-00000001)- 10 символов Префикосм "А" и не пахнет :(
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Не туда смотрите. Префиксу всегда будет куда добавиться за счет лидирующих нулей.
    Откройте глобальный модуль, найдите процедуру "глЗаполнитьШапку", в ней найдите строку с процедурой УстановитьНовыйНомер(). Этот участок кода покажите.
  4. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Код:
     Процедура глЗаполнитьШапку(Конт) Экспорт
    
    Конт.Автор = глПользователь;
    ВидДок = Конт.Вид();
    
    Если ПустоеЗначение(Конт.Фирма)=1 Тогда
    Если глПользователь.Выбран()=1 Тогда
    Если глПользователь.ОсновнаяФирма.Выбран()=1 Тогда
    Конт.Фирма=глПользователь.ОсновнаяФирма;
    Иначе
    Конт.Фирма=Константа.ОсновнаяФирма;
    КонецЕсли;
    Иначе
    Конт.Фирма=Константа.ОсновнаяФирма;
    КонецЕсли;
    КонецЕсли;
    
    Если глЕстьРеквизитШапки("РСчет",ВидДок) = ДА Тогда
    Если ПустоеЗначение(Конт.РСчет) = 1 Тогда
    Конт.РСчет = Конт.Фирма.СчетПоУмолчанию;
    КонецЕсли;
    КонецЕсли;
    
    Конт.ТипУчета=ДефТипУчета(Конт);
    Конт.ФинУчет=?(Конт.ТипУчета>Упр,1,0);
    
    // установим склад
    Если глЕстьРеквизитШапки("Склад",ВидДок) = Да Тогда
    Если ПустоеЗначение(Конт.Склад) = 1 Тогда   
    // склад не заполнен
    Если ((ВидДок="ОтчетКА") ИЛИ
    (ВидДок="ЧекКА") ИЛИ 
    (ВидДок="РасходнаяРозничная")) Тогда                                
    СпрСклады = СоздатьОбъект("Справочник.МестаХранения");                
    СпрСклады.ВыбратьЭлементы();
    Пока СпрСклады.ПолучитьЭлемент() = 1 цикл
    Если СпрСклады.ВидСклада=Перечисление.ВидыСкладов.Розничный Тогда
    Конт.Склад=СпрСклады.ТекущийЭлемент();                 
    Прервать;
    КонецЕсли;    
    КонецЦикла;                                                                                         
    Иначе         
    Конт.Склад=Константа.ОсновнойСклад;                 
    КонецЕсли;            
    КонецЕсли;
    КонецЕсли;
    
    // Устанавливаем номер документа
    глУстановитьНомерДок(Конт);
    КонецПроцедуры
    
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Процедуру "глУстановитьНомерДок(Конт);" покажите.
  6. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Код:
    // ===============================
    // Процедура: глУстановитьНомерДок(Конт)
    // Параметры: 
    //     Конт - контекст формы документа или сам документ
    //
    // Возвращаемое значение:
    // НЕТ
    // Описание:
    // Формирует новый номер докумета.
    Процедура глУстановитьНомерДок(Конт) Экспорт
    Если Конт.ТипУчета=Упр Тогда
    Конт.УстановитьНовыйНомер(Константа.ПрефиксНомеровДокументовУпрУчета);
    Иначе
    Конт.УстановитьНовыйНомер(Конт.Фирма.ПрефиксНомеровДокументов);
    КонецЕсли;
    КонецПроцедуры                                
    
    
    // =============================== 
    
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Так попробуйте преписать:
    Код:
    // ===============================
    // Процедура: глУстановитьНомерДок(Конт)
    // Параметры: 
    //     Конт - контекст формы документа или сам документ
    //
    // Возвращаемое значение:
    // НЕТ
    // Описание:
    // Формирует новый номер докумета.
    Процедура глУстановитьНомерДок(Конт) Экспорт
    Если Конт.ТипУчета=Упр Тогда
    Конт.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + Константа.ПрефиксНомеровДокументовУпрУчета);
    Иначе
    Конт.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + Конт.Фирма.ПрефиксНомеровДокументов);
    КонецЕсли;
    КонецПроцедуры                                
    // =============================== 
    
    
  8. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    при попытке создать документ ошибка:
    Код:
    Конт.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + Конт.Фирма.ПрефиксНомеровДокументов);
    {Глобальный модуль(2506)}: Поле агрегатного объекта не обнаружено (ПрефиксИБ)
    
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Посмотрите как у вас эта константа называется.
    Раскойте ветку "Константы" в конфигурации, посмотрите, есть ли там константа с таким (похожим именем). И соответственно перепишите вот это "Константа.ПрефиксИБ".
  10. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Префикс добавился! НО, он не решает проблемы. Ставлю Префикс "А" создаётся накладная АТР-000001 сохранил. Делаю выгрузку в периферийную, там накладные так же создаются с префиксом "А", меняю его на "В" делаю накладную ВТР-000001 сохраняю, выгрузка... Иду в ЦБ - загрузка, в Итоге и меня две накладных АТР-000001 и ВТР-000001, а теперь самое смешное: создаю накладную ВТР-000002 константа префикса изменилась на префикс периферийной базы, веселуха...
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Свойства этой константы в конфигураторе откройте. Закладка "Миграция". Что там стоит?
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Вобщем проверьте что для этой константы там стоит "место создания". После этого значение константы между узлами не должно передаваться, в каждом узле базы будет свое.
  13. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Стоит "Все информационные базы", поставлю "место создания" и поэкспериментирую с утра. Благодарю за помощь, сегодня голова уже не работает, и всё же у меня как то работало без префиксов, верней константу я помню, что эту сам создавал ибо её не было, но её значение было пустым, потому как все накладные которые создавались В ЦБ и ПБ имели префикс ТР-... и работал обмен безо всяких ошибок нумерации, и не было одинаковых номеров при обмене, мне кто то чёта прописал в глобальном модуле вроде, что номера при загрузке из ПБ перенумеровывались, если кто всё же понимает о чём я, то помогите.
  14. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Обмен мог работать без ошибок нумерации в том случае, если документы определенного вида создавались только в одной базе. Или (сутя по изменениям в вашей конфигурации), у вас документы разделены на два вида учета управленческий и регламентный, о5 таки, если в каждом узле ИБ создавался только свой вид документов, также работало бы без проблем.
    Насчет преписки в модуле - ну возможно. Но не зная вашей конфигурации (а она судя по приведенным процедурам "сильно" нетиповая), что-то советовать поменять-приписать я не возьмусь.
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Изначально в конфе все стояло правильно (на украине до сих пор юзают переделанную ТиС 8.7). Там 2 префикса. А ВЫ ПРОСТАВИЛИ НЕ ВЕЗДЕ.
    1)Возвращаем как было:
    Код:
    Процедура глУстановитьНомерДок(Конт) Экспорт    
    Если Конт.ТипУчета=Упр Тогда        
    Конт.УстановитьНовыйНомер(Константа.ПрефиксНомеровДокументовУпрУчета);    
    Иначе        
    Конт.УстановитьНовыйНомер(Конт.Фирма.ПрефиксНомеровДокументов);    
    КонецЕсли;
    КонецПроцедуры     
    
    
    
    2) Ставим префикс (для примера)
    ЦБ:
    - для упр. учета ЦУ (в константах)
    - для финансового ЦФ (в спр. фирмы)
    Перефирийная база
    - для упр. учета ПУ (в константах)
    - для финансового ПФ (в спр. фирмы)

    Если не хотите разделять упр. и фин. учет (наксолько я помню у вас это не допускается) - поставьте единый префис.
  16. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    8.7. Я то на 9.2 ориентировался, все думал, кто настолько решил над конфой поиздеваться. Вонаначо оказывается.

    Бухгалтерский угодник, скажите, а где тогда учитывается в нумерации документов префикс ИБ?
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    А его (префикса) как такового (именно для УРБД) там и нет
  18. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Опять 23 часа и только появилось время отписать.
    Бухгалтерский угодник Вы предложили рабочий вариант, и по сути, я сам понимаю, что так будет работать обмен, без сбоев с нумерацией, аж до второго обмена ЦБ с ПБ потому как, но мы же с Вами понимаем, что приоритет всегда у ЦБ, поэтому каждый раз когда я выгружаю данные в ПБ у меня префикс (в спр. фирмы) меняется на тот, что в ЦБ. В константах поставил на закладке миграция "места хранения" и константа при обмене не меняется, что делать с префиксом (в спр. фирмы)?
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Так поступите как положено - создайте ФИЛИАЛ фирмы
  20. TopicStarter Overlay
    maxsprite
    Offline

    maxsprite

    Регистрация:
    20 июл 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Отключил миграцию справочника фирмы, в ПБ поставил другой префикс и все меняется без ошибки. Всем спасибо

Поделиться этой страницей