Как в документе Заказ покупателя добавить ячейку с счетчиком от 1 до 3?

1. metisluvre 06.11.19 16:44 Сейчас в теме
На производстве работа осуществляется на основании печатной формы-"Заявка" документа Заказ покупателя. Так как на производстве находится 3 рабочих (в дальнейшем их может стать больше) нужно, чтобы при создании нового заказа ему в какой-нибудь ячейке например "Ответственный заказа" присваивался номер 1 (то есть заказ принадлежит первому рабочему), при создании след. заказа присваивался номер 2, при создании еще одного заказа присваивался номер 3, и при создании еще одного присваивался номер 1 и так далее. То есть нужно чтобы заказы автоматически делились на троих человек без вмешательства в этот документ менеджера.
Прикрепленные файлы:
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. PriestVI 06.11.19 17:30 Сейчас в теме
(1) Да, не нужно из прошлого заказа. Не могу сказать насколько верно, возможно более опытные люди подскажут, но я бы сделал регистр сведений, в который заносил Дату(Не документа, а именно установки мастера), Ссылку на документ и мастера. И соответственно в нужный момент получал последнюю запись(при условии что ранее этого документа там не было), смотрел что там за мастер и назначал следующего, добавляя данный документ.
5. metisluvre 06.11.19 17:40 Сейчас в теме
(3)никто ничего не должен назначать, смысл в том что все честно, и при создании нового заказа автоматически присваивался 1, 2 или 3, чтобы рабочий увидев свою цифру понял, что это его заказ
6. PriestVI 06.11.19 17:45 Сейчас в теме
(5) Под "назначал следующего" я имею ввиду алгоритм будет делать, а не человек.
Все это будет автоматически делаться.
9. metisluvre 06.11.19 17:58 Сейчас в теме
(6) есть ли какой-нибудь пример из этой конфигурации или что-нибудь на что можно сослаться, чтобы сделать по образу и подобию?
12. PriestVI 06.11.19 18:11 Сейчас в теме
(9) К сожалению - затрудняюсь сказать. Данный вариант взял из головы. Посмотрите на предложенные варианты, определитесь что Вам больше подходит. Хочется ли добавлять новые объекты, бывает-ли такое что меняют даты документа. И тогда можно будет конкретнее сказать.
4. lefthander 06.11.19 17:38 Сейчас в теме
(1)а если эту цифру "заложить" в номер документа? И в зависимости от пользователя при первой записи формировать номер документа, где на определенном месте будет нужная цифра.
2. PriestVI 06.11.19 17:00 Сейчас в теме
А в чем проблема? Создаем какую-нибудь константу или регистр сведений. Ставим там цифру 1 и при создании следующего заказа к этому значению добавляем 1(но если >3 тогда 1) и перезаписываем данные в объекте.
Либо совсем просто при создании заказа получаем данные из прошлого документа и тоже самое - но это как-то коряво.
7. Sashares 34 06.11.19 17:48 Сейчас в теме
И в чем проблема? Перед записью документа смотреть последний записанный документ, чтобы увидеть какой последний был выбран и для текущего документа ставить следующий.
8. PriestVI 06.11.19 17:55 Сейчас в теме
(7) Я побоялся что они могут менять дату документа и последовательность может поплыть. Вопрос для себя на будущее)
10. Sashares 34 06.11.19 17:59 Сейчас в теме
(8) Если будут вводить задним числом, то без хранения последнего записанного документа где-нибудь отдельно, то да, может поплыть))

Еще можно изнасиловать номер.
Разделить номер на 3.
В зависимости от остатка от деления определять ответственного.

Это так, костыльные варианты решения без добавления отдельных объектов метаданных.
PriestVI; +1 Ответить
11. PriestVI 06.11.19 18:02 Сейчас в теме
(10) Ясно, большое спасибо.
14. metisluvre 06.11.19 18:18 Сейчас в теме
(10)можете подробнее описать, как это разделить номер на 3?
17. Sashares 34 06.11.19 18:31 Сейчас в теме
(14)Примерно так:

ТекНомер = "АБ-0003223";

НомерБезБукв = "";
Для Инд = 1 По СтрДлина(ТекНомер) Цикл
	
	ТекСимвол = Сред(ТекНомер,Инд,1);
	Если СтрНайти("0123456789",ТекСимвол)=0 Тогда
		Продолжить;
	КонецЕсли;
	НомерБезБукв = НомерБезБукв + ТекСимвол;
	
КонецЦикла;

НомерЧислом = Число(НомерБезБукв);

ОстатокОтДеления = НомерЧислом % 3;

Если ОстатокОтДеления = 0 Тогда
	//
ИначеЕсли ОстатокОтДеления = 1 Тогда
	//
ИначеЕсли ОстатокОтДеления = 2 Тогда
	//
КонецЕсли;
Показать


Но это тоже костыльно))
Например, нумерация документов обычно в пределах года.
Поэтому с января начнется новая нумерация, и расчет начнется новый.
То есть полной гарантии, что в порядке назначения ответственных не будет пропусков, этот подход не даст.
20. AlexandrSmith 68 06.11.19 22:41 Сейчас в теме
(10)
Если будут вводить задним числом, то без хранения последнего записанного документа где-нибудь отдельно, то да, может поплыть))

Еще можно изнасиловать номер.
Разделить номер на 3.
В зависимости от остатка от деления определять ответственного.

Это так, костыльные варианты решения без добавления отдельных объектов метаданных.


Согласен с каждым словом, не понимаю, почему каждый раз менеджерам и бухгалтерам нельзя объяснить, что нумерацию менять нельзя самим.
13. metisluvre 06.11.19 18:17 Сейчас в теме
(8)ну, есть вероятность, что дату документа изменят
15. PriestVI 06.11.19 18:21 Сейчас в теме
(13) А конфигурация с возможностью изменения или через расширение будете делать?
16. metisluvre 06.11.19 18:28 Сейчас в теме
(15)с возможностью изменения
19. PriestVI 06.11.19 18:37 Сейчас в теме
(16) Мне эта идея не нравится, но что если создать константу "ТекущийМастер".
Перед сохранением документа сделать как то так:

Если Объект.[ВашеПоле] = 0 Тогда
    ТекущийМастер = Константы.ТекущийМастер.Получить() + 1;
    Если ТекущийМастер > 3 тогда
               ТекущийМастер = 1;
    КонецЕсли;
    Объект.[ВашеПоле] = ТекущийМастер;
    Константы.ТекущийМастер.Установить(ТекущийМастер);
КонецЕсли;
Показать


Это очень грубо набросал. Цифру 3 можно брать из другой константы, например, количество мастеров - вдруг еще появятся.
18. metisluvre 06.11.19 18:32 Сейчас в теме
(8)с другой стороны, если последовательность и поплывет это не критично, ведь никто из рабочих не будет и не сможет посчитать общее количество полученных заказов, и заказов других рабочих
21. PiotrLoginov 07.11.19 00:21 Сейчас в теме
При решении подобных задач нужно учесть массу подводных камней. Перечислить которые сразу под силу только гипотетическому гуру, хорошо знакомому с реалиями конкретной конторы и принципами распределения задач при автоматизации управления производственными ресурсами.

Решение должно быть максимально простым, чтобы никто и никогда не смог подловить автора алгоритма на какой-то несправедливости или сбое в условиях, когда новый заказ создан задним числом; числом меньшим, чем первый когда-либо созданный заказ, будущим числом; когда два новых заказа созданы практически одновременно из разных сеансов; когда новый заказ создается во время больничного одного из рабочих.

Решение приводить не буду, но намекну, что при любом раскладе нужно лишь запрещать назначение других рабочих в момент, когда наш сеанс создает новый заказ, соблюдать справедливость и обеспечить прозрачность, чтобы никто из рабочих не почувствовал себя обделенным.
22. serq82 8 12.12.19 10:05 Сейчас в теме
у меня на каждый станок печатается задание производство с нужной номенклатурой
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)