Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Янв 2018, 07:01
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Штатная нумерация документа задваивает номера  (Прочитано 8571 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vdeg

Имеется проблема с нумерацией документа "Наряд заказ" в доработанной 1С Управлении торговлей.

Ситуация : длина номера документа в Конфигураторе = 14.

Автонумерация (в свойствах документа в Конфигураторе) отключена, проверка уникальности номера - тоже.

В процедуре ПередЗаписью() в модуле документа методом УстановитьНовыйНомер() документу присваивается номер 3-110313-00014, но затем (по просьбе пользователей) программный обработчик удаляет два ведущих нуля и номер превращается в 3-110313-014.

Проблема однако в том, что впоследствии, в другом новом наряде (в сессии другого пользователя программы) номер 3-110313-00014 тоже может быть присвоен программой (с обрезанием до 3-110313-014). Итого - возникают дубли номеров у совершенно разных нарядов :(

Как можно с этим бороться?

Версия платформы - 8.2.15.289, сервер приложений 1С и СУБД PostgreSQL работают под Linux.
Житель района Восточное Дегунино (Москва, Россия)
Мой блог программиста


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6571
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Заголовок доставляет.
"Штатная нумерация документа задваивает номера"
По описанию получается, что от штатной нумерации ничего не осталось.

Предложение вернуться к штатной нумерации не принимается?

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Автонумерация (в свойствах документа в Конфигураторе) отключена
:)

Добавлено: 12 Мар 2013, 12:59

Проверяйте дубли перед записью документов
Что тут еще можно посоветовать?
skype: slin-dev

Оффлайн Vdeg

Заголовок доставляет.
"Штатная нумерация документа задваивает номера"
По описанию получается, что от штатной нумерации ничего не осталось.

Предложение вернуться к штатной нумерации не принимается?
Номера нужны вида 7-110313-NNN , где 7 - номер филиала, 110313 - дата, NNN - порядковый номер документа в течение дня.

Этот номер присваивается документу методом УстановитьНовыйНомер() - вот почему я написал в заголовке темы "Штатная нумерация задваивает ...".

За заполнение префикса в модуле документа отвечает предопределённая процедура :

Цитировать
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
   //   СтандартнаяОбработка = Ложь;
   КодСклада1 = СокрЛП(ПараметрыСеанса.ТекущийПользователь.Склад.Код);
   // строка вида "М7"
   
   Если ПустаяСтрока(КодСклада1) Тогда
      // склад не определен
      НомерСклада = 0;
   ИначеЕсли СтрДлина(КодСклада1) = 1 Тогда
      // слишком короткий код
      НомерСклада = 0;
   Иначе
      // правильный код
      НомерСклада = Сред(КодСклада1, 2);
   КонецЕсли;
   
   Префикс = строка(НомерСклада)+"-"+строка(Формат(ТекущаяДата(),"ДФ=ддММгг"))+"-";
КонецПроцедуры
Добавлено: 12 Мар 2013, 13:04

Проверяйте дубли перед записью документов
Да я поверить не могу, что эта задача не имеет другого решения! :fdbsdfbsd:
Житель района Восточное Дегунино (Москва, Россия)
Мой блог программиста

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
УстановитьНовыйНомер() просто вызывает событие ПриУстановкеНовогоНомера и отрабатывает алгоритм, а поскольку автонумерацию вы отключили.... то выдается последний номер.
Включите автонумерацию и установите длину кода равной 12 - теоретически поможет.
Добавлено: 12 Мар 2013, 13:14

И предыдущую нумерацию не забудьте проверить
skype: slin-dev

Оффлайн Vdeg

Включите автонумерацию и установите длину кода равной 12 - теоретически поможет.
Длину кода установил = 12, не помогло!

Автонумерацию я включал, но она "хватает" номера через 2 : сначала 001, затем 003, потом 005 и так далее. Это в сессии одного пользователя.
Житель района Восточное Дегунино (Москва, Россия)
Мой блог программиста

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Может вы зря делаете вызов УстановитьНовыйНомер?
skype: slin-dev

Оффлайн Vdeg

Может вы зря делаете вызов УстановитьНовыйНомер?
Может, и зря. Но в противном случае номер документа - пустой (пустая строка). Автонумерация-то отключена.
Добавлено: 12 Мар 2013, 13:28

УстановитьНовыйНомер() просто вызывает событие ПриУстановкеНовогоНомера и отрабатывает алгоритм, а поскольку автонумерацию вы отключили.... то выдается последний номер.
Это не так.

Этот метод берёт НЕКИЙ последний номер, и к нему прибавляется 1.

Я на практике сейчас вижу : если применить УстановитьНовыйНомер() несколько раз, то все они выдают разные номера, последовательно увеличенные на 1.
Житель района Восточное Дегунино (Москва, Россия)
Мой блог программиста

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
если применить УстановитьНовыйНомер() несколько раз, то все они выдают разные номера, последовательно увеличенные на 1.
При отключенной автонумерации?
skype: slin-dev

Оффлайн Vdeg

Житель района Восточное Дегунино (Москва, Россия)
Мой блог программиста


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4586
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 16197
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4303
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 739
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7859
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
102 Сообщений
AIFrame
86 Сообщений
alex0402
34 Сообщений
pavl_vs
23 Сообщений
kiksi
19 Сообщений
alexandr_ll
17 Сообщений
andron81_81
16 Сообщений
Norfolk
15 Сообщений
LexaK
13 Сообщений
MuI_I_Ika MuI_I_Ika
13 Сообщений

* Кто онлайн

  • Точка Гостей: 371
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal