1. metisluvre 06.11.19 16:44 Сейчас в теме

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

На производстве работа осуществляется на основании печатной формы-"Заявка" документа Заказ покупателя. Так как на производстве находится 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 18 06.11.19 17:48 Сейчас в теме
И в чем проблема? Перед записью документа смотреть последний записанный документ, чтобы увидеть какой последний был выбран и для текущего документа ставить следующий.
8. PriestVI 06.11.19 17:55 Сейчас в теме
(7) Я побоялся что они могут менять дату документа и последовательность может поплыть. Вопрос для себя на будущее)
10. Sashares 18 06.11.19 17:59 Сейчас в теме
(8) Если будут вводить задним числом, то без хранения последнего записанного документа где-нибудь отдельно, то да, может поплыть))

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

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

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

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

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

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

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


Но это тоже костыльно))
Например, нумерация документов обычно в пределах года.
Поэтому с января начнется новая нумерация, и расчет начнется новый.
То есть полной гарантии, что в порядке назначения ответственных не будет пропусков, этот подход не даст.
20. AlexandrSmith 46 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 Сейчас в теме
При решении подобных задач нужно учесть массу подводных камней. Перечислить которые сразу под силу только гипотетическому гуру, хорошо знакомому с реалиями конкретной конторы и принципами распределения задач при автоматизации управления производственными ресурсами.

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

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

Вакансии

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

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

Программист 1С
Рязань
зарплата от 90 000 руб.
Полный день

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день