Дорого времени суток! Подскажите, пожалуйста такой момент. Есть регистр накопления, куда попадают заказы из поступления товаров и услуг. У каждого заказа есть свой номер, но есть еще и заказы без номера. который надо присваивать. Есть идея собирать все "наши" заказы (их количество из регистра) и следующему номеру присваивать Количество+1. Вопрос вот какой - если документ будут проводить несколько человек, количество может получиться ошибочным. Не совсем понятно, как сделать так, чтобы количество было правильным - я думаю в сторону блокировки, но не знаю как наложить ее на регистр накопления. Надо добиться уникальности номеров.
По теме из базы знаний
- Изменение префиксов в коде, номере объектов
- Автоматическая установка номеров сообщений на ноль
- Изменение номера журнала операций у счетов и в проводках документов (БГУ 1.0)
- Изменение номера журнала операций у счетов и в проводках документов (БГУ 2.0)
- Автоматическая установка номера счета-фактуры как у реализации
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1. Что значит попадают заказы из поступления товаров? При проведении поступления создаётся ещё какой-то заказ?
2. Может в документе сразу этот номер присваивать? Это ведь не реквизит номер, правильно?
3. Зачем количество собирать? Не проще тогда искать наибольший номер?
4.Что значит документ будут проводить несколько человек? Разные документы будут проводить одновременно несколько человек? Тогда блокировку придётся накладывать на весь регистр и это сильно замедлит работу (если конечно у вас не 2 человека работают).
2. Может в документе сразу этот номер присваивать? Это ведь не реквизит номер, правильно?
3. Зачем количество собирать? Не проще тогда искать наибольший номер?
4.Что значит документ будут проводить несколько человек? Разные документы будут проводить одновременно несколько человек? Тогда блокировку придётся накладывать на весь регистр и это сильно замедлит работу (если конечно у вас не 2 человека работают).
Суть в чем - номер заказа - идентификатор строки думаю собирать так: "ou"+максимальный номер
(3)
1. Номер должен присвоиться в строке ТЧ документа
2. В моем регистре номер заказа - измерение
3. Да, так проще, безусловно
4. Документ проводит один человек - максимальный номер в регистре, допустим, 3. В документе поступления номер присвоится 4, но данных в регистре еще нет. В этот момент создает еще один человек поступление. Максимальный номер все равно будет 3. Так в этом документе номер должен быть уже 5. Вот эту ситуацию я и хочу избежать.
(3)
1. Номер должен присвоиться в строке ТЧ документа
2. В моем регистре номер заказа - измерение
3. Да, так проще, безусловно
4. Документ проводит один человек - максимальный номер в регистре, допустим, 3. В документе поступления номер присвоится 4, но данных в регистре еще нет. В этот момент создает еще один человек поступление. Максимальный номер все равно будет 3. Так в этом документе номер должен быть уже 5. Вот эту ситуацию я и хочу избежать.
(5) В этой логике блокировать измерение - номер заказа бесполезно (они разные всё время), тогда получается, что надо блокировать весь регистр (может другие есть какие измерения, по которым можно частично включить блокировку на регистр). При проведении документа, блокируем регистр, находим последний номер, заполняем табличную часть, проводим документ, снимаем блокировку.
2. Не проще будет номер составлять из 2-х частей, первая часть - номер документа, через дефис (к примеру) номер строки табличной части. Тогда не надо будет запрашивать последний номер, и всегда они будут разными.
3. И вообще не понятна работа всего механизма, зачем номера, что с ними потом делать, может можно без них обойтись.
2. Не проще будет номер составлять из 2-х частей, первая часть - номер документа, через дефис (к примеру) номер строки табличной части. Тогда не надо будет запрашивать последний номер, и всегда они будут разными.
3. И вообще не понятна работа всего механизма, зачем номера, что с ними потом делать, может можно без них обойтись.
(5)
регистр просто не нужен. Бери последний номер из таблицы документа. Номер присваивай при записи. Все.
Если зачем-то все же нужен регистр, то туда записывать после записи документа.
Документ проводит один человек - максимальный номер в регистре, допустим, 3. В документе поступления номер присвоится 4, но данных в регистре еще нет. В этот момент создает еще один человек поступление. Максимальный номер все равно будет 3. Так в этом документе номер должен быть уже 5. Вот эту ситуацию я и хочу избежать.
регистр просто не нужен. Бери последний номер из таблицы документа. Номер присваивай при записи. Все.
Если зачем-то все же нужен регистр, то туда записывать после записи документа.
Хотите получить простые номера без префиксов (1,2,3...) - делайте константу, в которой храните последний выданный номер:
Получаете константу, блокируете, читаете значение, увеличиваете на 1 (это ваш новый номер заказа), записываете, разблокируете.
Если предполагаете, что в будущем у номеров появлятся префиксы, то вместо константы заводите регистр сведений, где в качестве измерений выступают объекты, определяющие префикс, сам префикс при этом лучше хранить там же, для ускорения получения номера.
Получаете константу, блокируете, читаете значение, увеличиваете на 1 (это ваш новый номер заказа), записываете, разблокируете.
Если предполагаете, что в будущем у номеров появлятся префиксы, то вместо константы заводите регистр сведений, где в качестве измерений выступают объекты, определяющие префикс, сам префикс при этом лучше хранить там же, для ускорения получения номера.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот