Как в документе Заказ покупателя добавить ячейку с счетчиком от 1 до 3?
На производстве работа осуществляется на основании печатной формы-"Заявка" документа Заказ покупателя. Так как на производстве находится 3 рабочих (в дальнейшем их может стать больше) нужно, чтобы при создании нового заказа ему в какой-нибудь ячейке например "Ответственный заказа" присваивался номер 1 (то есть заказ принадлежит первому рабочему), при создании след. заказа присваивался номер 2, при создании еще одного заказа присваивался номер 3, и при создании еще одного присваивался номер 1 и так далее. То есть нужно чтобы заказы автоматически делились на троих человек без вмешательства в этот документ менеджера.
Прикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Да, не нужно из прошлого заказа. Не могу сказать насколько верно, возможно более опытные люди подскажут, но я бы сделал регистр сведений, в который заносил Дату(Не документа, а именно установки мастера), Ссылку на документ и мастера. И соответственно в нужный момент получал последнюю запись(при условии что ранее этого документа там не было), смотрел что там за мастер и назначал следующего, добавляя данный документ.
(9) К сожалению - затрудняюсь сказать. Данный вариант взял из головы. Посмотрите на предложенные варианты, определитесь что Вам больше подходит. Хочется ли добавлять новые объекты, бывает-ли такое что меняют даты документа. И тогда можно будет конкретнее сказать.
А в чем проблема? Создаем какую-нибудь константу или регистр сведений. Ставим там цифру 1 и при создании следующего заказа к этому значению добавляем 1(но если >3 тогда 1) и перезаписываем данные в объекте.
Либо совсем просто при создании заказа получаем данные из прошлого документа и тоже самое - но это как-то коряво.
Либо совсем просто при создании заказа получаем данные из прошлого документа и тоже самое - но это как-то коряво.
(8) Если будут вводить задним числом, то без хранения последнего записанного документа где-нибудь отдельно, то да, может поплыть))
Еще можно изнасиловать номер.
Разделить номер на 3.
В зависимости от остатка от деления определять ответственного.
Это так, костыльные варианты решения без добавления отдельных объектов метаданных.
Еще можно изнасиловать номер.
Разделить номер на 3.
В зависимости от остатка от деления определять ответственного.
Это так, костыльные варианты решения без добавления отдельных объектов метаданных.
(14)Примерно так:
Но это тоже костыльно))
Например, нумерация документов обычно в пределах года.
Поэтому с января начнется новая нумерация, и расчет начнется новый.
То есть полной гарантии, что в порядке назначения ответственных не будет пропусков, этот подход не даст.
ТекНомер = "АБ-0003223";
НомерБезБукв = "";
Для Инд = 1 По СтрДлина(ТекНомер) Цикл
ТекСимвол = Сред(ТекНомер,Инд,1);
Если СтрНайти("0123456789",ТекСимвол)=0 Тогда
Продолжить;
КонецЕсли;
НомерБезБукв = НомерБезБукв + ТекСимвол;
КонецЦикла;
НомерЧислом = Число(НомерБезБукв);
ОстатокОтДеления = НомерЧислом % 3;
Если ОстатокОтДеления = 0 Тогда
//
ИначеЕсли ОстатокОтДеления = 1 Тогда
//
ИначеЕсли ОстатокОтДеления = 2 Тогда
//
КонецЕсли;
ПоказатьНо это тоже костыльно))
Например, нумерация документов обычно в пределах года.
Поэтому с января начнется новая нумерация, и расчет начнется новый.
То есть полной гарантии, что в порядке назначения ответственных не будет пропусков, этот подход не даст.
(10)
Согласен с каждым словом, не понимаю, почему каждый раз менеджерам и бухгалтерам нельзя объяснить, что нумерацию менять нельзя самим.
Если будут вводить задним числом, то без хранения последнего записанного документа где-нибудь отдельно, то да, может поплыть))
Еще можно изнасиловать номер.
Разделить номер на 3.
В зависимости от остатка от деления определять ответственного.
Это так, костыльные варианты решения без добавления отдельных объектов метаданных.
Еще можно изнасиловать номер.
Разделить номер на 3.
В зависимости от остатка от деления определять ответственного.
Это так, костыльные варианты решения без добавления отдельных объектов метаданных.
Согласен с каждым словом, не понимаю, почему каждый раз менеджерам и бухгалтерам нельзя объяснить, что нумерацию менять нельзя самим.
(16) Мне эта идея не нравится, но что если создать константу "ТекущийМастер".
Перед сохранением документа сделать как то так:
Это очень грубо набросал. Цифру 3 можно брать из другой константы, например, количество мастеров - вдруг еще появятся.
Перед сохранением документа сделать как то так:
Если Объект.[ВашеПоле] = 0 Тогда
ТекущийМастер = Константы.ТекущийМастер.Получить() + 1;
Если ТекущийМастер > 3 тогда
ТекущийМастер = 1;
КонецЕсли;
Объект.[ВашеПоле] = ТекущийМастер;
Константы.ТекущийМастер.Установить(ТекущийМастер);
КонецЕсли;
ПоказатьЭто очень грубо набросал. Цифру 3 можно брать из другой константы, например, количество мастеров - вдруг еще появятся.
При решении подобных задач нужно учесть массу подводных камней. Перечислить которые сразу под силу только гипотетическому гуру, хорошо знакомому с реалиями конкретной конторы и принципами распределения задач при автоматизации управления производственными ресурсами.
Решение должно быть максимально простым, чтобы никто и никогда не смог подловить автора алгоритма на какой-то несправедливости или сбое в условиях, когда новый заказ создан задним числом; числом меньшим, чем первый когда-либо созданный заказ, будущим числом; когда два новых заказа созданы практически одновременно из разных сеансов; когда новый заказ создается во время больничного одного из рабочих.
Решение приводить не буду, но намекну, что при любом раскладе нужно лишь запрещать назначение других рабочих в момент, когда наш сеанс создает новый заказ, соблюдать справедливость и обеспечить прозрачность, чтобы никто из рабочих не почувствовал себя обделенным.
Решение должно быть максимально простым, чтобы никто и никогда не смог подловить автора алгоритма на какой-то несправедливости или сбое в условиях, когда новый заказ создан задним числом; числом меньшим, чем первый когда-либо созданный заказ, будущим числом; когда два новых заказа созданы практически одновременно из разных сеансов; когда новый заказ создается во время больничного одного из рабочих.
Решение приводить не буду, но намекну, что при любом раскладе нужно лишь запрещать назначение других рабочих в момент, когда наш сеанс создает новый заказ, соблюдать справедливость и обеспечить прозрачность, чтобы никто из рабочих не почувствовал себя обделенным.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот