Имя: Пароль:
1C
 
Одновременное изменение одного документа неск польз
0 ac13
 
18.06.24
16:00
Уважаемые, подскажите пожалуйста, можно ли при открытии документа пользователем сообщать ему, что он уже открыт у двух других? А следующему сообщать, что документ открыт уже у трех? И перед записью изменений предлагать перезатереть данные, сохраненные другим пользователем. Или вся эта идея плохая? Вообще был у кого опыт настройки работы с одним доком нескольких пользователей и чтобы они друг другу при этом не мешали?
1 Ненавижу 1С
 
18.06.24
16:14
(0) не мешали и затирали данные - немного разные вещи
2 ac13
 
18.06.24
16:16
(1) не поспоришь
3 Kongo2019
 
18.06.24
16:20
(0) Не советую. С реализацией замудахаешься. Кто первый встал того и тапки.
4 spiller26
 
18.06.24
16:46
Если пользователь редактирует документ, то сообщение выдаст, а если просто открыл и смотрит и потом решит отредактировать, то это проблемы пользователя, что слишком долго думал.
5 maxab72
 
18.06.24
16:52
(0) При открытии документа в регистр сведений пишется какой-то флаг. Если кто-то пытается открыть - флаг читается и документ открывается только напосмотреть. При закрытии - флаг убирается. Это примерно как в ДО, когда можно занять документ на редактирование и держать пару дней за собой, чтоб никто в нем свои правки не понаоставлял.
6 arsik
 
18.06.24
16:58
(0) Легко.
В форме документа добавить в начало процедуры "ПриСозданииНаСервере"
У нас немного не так реализовано конечно как описано в (0)
Кто первым зашел, то и папа, пока не закроет.
	Попытка
		ЭтотОбъект.ЗаблокироватьДанныеФормыДляРедактирования();
	Исключение
		Сообщить(ОписаниеОшибки());
		ЭтаФорма.ТолькоПросмотр = Истина;
	КонецПопытки;

В описании ошибки пишется, кто сейчас заблокировал форму.
7 arsik
 
18.06.24
17:01
(0) Ну и тут логика видимо кривая. Не должны несколько человек работать одновременно с одним объектом.
Значит нужно создавать несколько разных объектов. По объекту на пользователя.
8 Aleksey
 
19.06.24
05:38
(7) ну классический пример документ инвентаризация, где несколько операторов параллельно забивают результат инвентаризации (по крайне мере многие так хотели бы)
9 arsik
 
19.06.24
08:11
(8) Пусть факт каждый в своем документе значит набивает.
10 maxab72
 
19.06.24
08:13
(8) Ага, по учету 10 штук, первый оператор нашел 7 штук, забил - 7, второй нашел 3 штуки - забил 3, итого было 10 стало 3.
Это решается другими способами:
а) Разбиением одного документа инвентаризации на десяток по разным товарным группам, и каждый занимается своей товарной группой.
б) введением промежуточного документа - в который собирается факт от каждого оператора, потом суммируется и переносится как факт в единую инвентаризацию.
95% задач требуют не изменений в коде, а элементарного наведения порядка (в первую очередь в голове), ибо хаос не автоматизируем в принципе.
P.S. была у нас на филиальном складе история. Там хранилось 4 станка, и пришло время проводить инвентаризацию. Срочно в головной звонит старший по складу - станков нашли всего 3!!! (а станок более миллиона стоит), все в панике... Кто-то догадался включить камеру наблюдения на складе и посмотреть, что там творится. Склад имел два прохода, разделенные капитальной стеной посредине, по обоим проходам по сторонам шли стеллажи и паллетоместа, и склад имел как бы форму кольца. Наблюдаем картину - по складу по часовой стрелке идет старший с ведомостью и пересчитывает станки стоящие на паллетометсах. Три станка. А по второму проходу, тоже двигаясь по часовой стрелке, младший кладовщик тащит на тележке четвертый станок, и ищет куда бы его пристроить, чтоб более рационально занять места на складе...
11 Kongo2019
 
19.06.24
08:22
(7) у нас была такая попытка. Набивка одного заказа несколькими операторами. То бишь в магаз ехал большой набор продукции, разной. Например, один оператор набивал болты, второй гайки.
Я блин извернулся, и сделал. Но по итогу нафуй не надо было. Потому что сбор был на разных складах, разными сборщиками. И делить надо было на сборку.
По итогу все выродилось. Куча заказов, одна расходная накладная.
12 Ненавижу 1С
 
19.06.24
08:24
(11) вот именно. Максимум сделали механизм "объединения" заказов, когда несколько распроводятся и проводится один как их объединение.
Но ситуация интересная тем, что в общем случае скидки изначальных заказов и итогового могут не совпадать по понятным причинам.
13 rphosts
 
19.06.24
08:28
(5) если сеанс отвалился - док остался "блокированным"...
14 Kongo2019
 
19.06.24
08:33
(13)Решается. Модератор этого хаоса имеет кнопку снять флаг.
15 lEvGl
 
19.06.24
08:38
(14) решается, но не так же. перед запуском базы в сеансе промониторить все и почистить неактуальное. нужна будет привязка к сеансу например или к IP, и вобще два раза одну базу на одном компе открывать нельзя чтобы за одно сделать
16 Ненавижу 1С
 
19.06.24
08:39
(15) "два раза одну базу на одном компе открывать нельзя" - ну это глупо так-то
17 Kongo2019
 
19.06.24
08:41
(15) У меня так решалось. Было два модератор этого бардака, они каппу жали. я спецом так сделал чтобы они зае...лись.
18 DrZombi
 
19.06.24
08:43
(0) Можно, но придется свой регистр хранения информации об открытии писать.

Если у вас открыть может любой, но редактирует кто-то один.
То можно , идеи для вас...

1. При открытии блокировать документ, и кто первый, того и тапки.

2. При открытии, не блокируем. Но как только пользователь документ модифицирует, документ блокируется.
   Блокировка выполняется по обработчику ожидания, если пользователь поменял документ, то пытаемся заблокировать :)
   После успешной блокировки отключаем обработчик.
19 Мультук
 
19.06.24
08:44
(16)

Встречал несколько раз (давным давно).

На одном из мест работы, как средство от "максимально тупых пользователей", которые в силах свернуть 1С, но не в силах самостоятельно увидеть 1С в таскбаре и запускают 2..N сеансов за день
20 maxab72
 
19.06.24
08:44
(16) Если установить в конфу что-нибудь типа "Простых звонков", то только так. Дважды открывать одну конфу на одном рабочем месте нельзя. Иначе начинается переброска несколько раз в секунду фокуса этих самых простых звонков между открытыми базами.
21 lEvGl
 
19.06.24
09:10
(16) да ну, от ситуации в общем зависит, и с лицензиями в частности, на 8.2 такую белеберду сделали, чтобы лишних лицензий не поглощалось самим сеансом + еще СОМы поднимаются. На РС все, анализ, подтирка неактуального и т д, все как для (0)
(17) )) это правильно, чтоб жизнь медом не казалась
22 Смотрящий
 
19.06.24
09:21
(0) Если только сигнализировать то ЗаблокироватьДанныеФормыДляРедактирования
Если полноценное редактирование то обработкой через буфер
23 strange2007
 
19.06.24
09:35
(0) Лучше сразу избавляться от хаотичного редактирования всеми всего. Один документ - один пользователь. Как только начинается редактирование одного документа всеми, проблемы появляются прям шквально. Всегда всё надо сравнивать с работой без компа, только на бумажках. В каком случае, например, два кассира будут выписывать один чек? Да ни в каком. Значит так же должно быть и в компе
Не правильно это. Прям очень не правильно
24 DJ Anthon
 
19.06.24
10:30
(23) и как, интересно, избавиться от функций, которые предоставляет сама 1С из коробки? конечно, в идеале вообще не бывает коллизий. В заказе клиента реализовано две функции - резервировать товар и отгрузить. резервируют менеджеры, отгружают кладовщики. бывает, что надо работать в одном документе двоим, потому что в 1С придумали частичную отгрузку. это ещё не считая кассира, который принимает оплату по документу (может поменять в заказе пометку какую-нибудь) и бухгалтеров, которым нужны проводки.
25 arsik
 
19.06.24
10:34
(24) Глупость какая то. Обычно резервирование делается документом резервирование, а отгрузка реализацией. У вас опять же хромает логика реализация задачи.
26 DJ Anthon
 
19.06.24
10:36
(25) это ерп, стандартная конфигурация. я же написал, из коробки. отгрузка делается реализацией, да. только для реализации надо товары в заказе перевести в статус отгрузки.
27 maxab72
 
19.06.24
10:37
(24) Где предоставляет? Как только первый пользователь запишет свои изменения, все остальные при попытке записать свои получат уведомление, что объект изменен и они в пролете. Никакого множественного одновременного редактирования документа как ссылки нет. есть возможность редактировать копии объекта, а это принципиально разные вещи.
28 arsik
 
19.06.24
10:42
(26) В ерп я нуб, но уверен по логике в 1С, что такое можно не только в самом заказе делать.
29 vde69
 
19.06.24
10:48
делается так

1. на форме НЕ используем реквизиты объекта, а используем только аналогичные реквизиты формы (форму придется сделать свою)
2. перед записью проверяем версию объекта с той версией которая считана формой,
3. если версии разные - читаем обьект и сравниваем реквизиты объекта с реквизитами формы, если есть критические расхождения - отображаем.
4. ну и где-то блокировка нужна...
30 WhiteDragon93
 
19.06.24
10:53
(24) а почему кладовщик лезет в управление заказами клиентов?  Статус "Отгрузить" устанавливает условный менеджер, а уже это действие является распоряжением на отгрузку условным кладовщиком.

Прежде чем ломать архитектуру, лучше посмотреть как это проектировали разработчики типовой и как ваши процессы на это ложатся. Может дело не в бобине.
31 DJ Anthon
 
19.06.24
10:59
(30) да, это разные менеджеры (я одного условно назвал кладовщик), один работает в одном городе, другой в другом. один занимается перемещением товара, другой продажей и отгрузкой. перемещение товара фиксируется не только перемещением, но и в заказе. но я просто для примера привел пример. у нас такие коллизии редко возникают, просто они допустимы, это факт. ерп это предусмотрела, и то хорошо. и это в любом случае не я придумал и ломать работающий механизм не буду, только допиливаю иногда )
32 Serg_1960
 
19.06.24
11:03
[не в тему]
Однажды довелось решать интересную задачу:

Менеджеры по продажам, оформляя заказ покупателя в диалоге с покупателем, хотели видеть не только остатки и резервы товара, но и те позиции товара, которые присутствовали в открытых, но ещё не записанных документах других менеджеров.

Цель? Чтобы один менеджер вовремя мог предложить своему покупателю другой товар или оперативно сообщить другому менеджеру о возникшей "конкуренции" за товар и решить оперативно эту проблему, пока документы ещё не записаны и оба покупателя на проводе у менеджеров.
33 DJ Anthon
 
19.06.24
11:02
(27) я про это и говорю. "Данные изменены другим пользователем" ) если тс хочет, пусть из ерп этот механизм себе возьмет на вооружение.
34 ЖНЕЦ
 
19.06.24
11:05
Раввин собрал всех евреев города и сказал им:
- Знаете, почему нас русские не любят?
Потому что мы водку пить не умеем. Приносите завтра по бутылке водки,
мы их сольем в один чан и будем учиться пить.

Все согласились. Один еврей подумал:
- Если все принесут по бутылке водки, и только я принесу бутылку воды,
никто и не заметит.

На следующий день приходят все евреи с бутылками, сливают их в один чан.
Раввин наливает оттуда одну стопку, пробует и говорит:
- Вот за это-то нас русские и не любят!



Один пользователь открывает документ и думает все же работают - не буду ничего делать. А если спросят, что делал ?
Скажу целый день забивал, забивал, не успел сохранить
35 strange2007
 
19.06.24
11:08
(24) >> и как, интересно, избавиться от функций, которые предоставляет сама 1С из коробки?
Если отходим от компа, то как такое будет делаться? Бумажка передаётся последовательно от одного сотрудника к другому. Они одновременно не пишут в одной бумажке, ведь так? Поэтому есть предположение, что надо почитать документацию от ERP. Не знаю как так получается, но в 1С работают далеко не самые глупые люди и на многие "очевидные" вещи у них есть конкретные рекомендации и документации.
Именно в ERP подобное не изучал, поэтому только предполагаю
36 lEvGl
 
19.06.24
11:13
далеко не самые глупые люди и на многие "очевидные" вещи у них есть конкретные рекомендации и документации

это даааа
жалко что уже нет тех, которые делали базу платформы, на основе которой теперь умные люди пишут документацию
там глюк на глюке прет и это не остановить
37 Serg_1960
 
19.06.24
11:17
+(32) Вспомнил потому, что вся эта информация оперативно отражалась непосредственно в табличной части заказа покупателя. Что, если подумать, не так уж сильно отличается от задачи автора ветки.
38 maxab72
 
19.06.24
11:46
(32) В принципе решаемо. Пара вариантов разной степени бредогеморройности в голову приходят. Но ни один мне не нравится.
39 2S
 
19.06.24
11:49
(37) РС с временными записями юзали?
40 lEvGl
 
19.06.24
12:56
(38) бредоненравится тоже. да, но если определить в реальности, что является фактом забора остатков, то можно и в программе сделать. Девочка взяла товар в ТЧ, это? Чепуха же. Она там покурит, чая попьет, откажется. Процесс надо понимать, это как всегда первоочередное, а табличек намутить не проблема
41 Serg_1960
 
19.06.24
13:03
(39) Да. "но есть один нюанс"(с) :) на форме открытого документа, вместо записей ТЧ документа, напрямую показывались записи РС. При открытии документа записи ТЧ копировались в РС, а при сохранении документа - перемещались из РС в ТЧ документа.
42 maxab72
 
19.06.24
13:11
(40) Бред или нет - это зависит от постановки работы в конкретной фирме. Если менеджер висит на телефоне и ему надиктовывают список из 2340 позиций, каждую из которых еще надо обсудить (тех.характеристики, взаимозаменяемость и т.п.) он, разумеется хочет быть уверен, что то, что он набрал в заказ не превратится в тыкву, когда он будет проводить документ. Поэтому, например, возможна такая схема: манагеры набирают заказ не в форме заказа, а в специальной форме, где у них открыт сразу весь каталог, и они могут против каждой позиции видеть текущий свободный остаток, количество и срок ожидаемого к поступлению, цену и т.п. (обработка порциями, по строкам, что на экране + столько же строк вверх и вниз по списку, т.ч. их не будет много и пересчет только при смещении экрана на количество позиций равное или большее половине экрана - тогда тормозов не будет). Сразу после окончания редактирования строки записывается резерв по этой позиции с проверкой, чтоб он не ушел в минус (если двое одновременно попытались забрать остаток товара) (запись по одной позиции без остальных проверок - поэтому тормозов не будет). После окончания работы манагер переводит весь этот список в заказ и начинает работать со скидками, сроками отгрузки, оплатами и т.п - но товар уже заблокирован за ним, пока он не проведет этот заказ.
43 Valdis2007
 
19.06.24
14:01
(0) Или вся эта идея плохая?....

это не плохая идея...а очень очень плохая
44 DJ Anthon
 
19.06.24
20:38
(42) да, скоро я такую же систему буду колхозить, судя по всему...
45 Garykom
 
19.06.24
20:59
Когда требуется (0) вероятно проблемы с архитектурой
Например строки ТЧ дока это разные документы должны быть
46 Garykom
 
19.06.24
21:03
(45)+ Довольно часто в WMS "сборочный лист" состоит из отдельных позиций
И да их могут "собирать" отдельные сотрудники каждый со своими ТСД
А потом опс и пытаются писать в один док одновременно

Хотя фактически надо отделить "сборочный лист" и "задание на сборку"
Возможно с промежуточным(ми) РС и регзаданием, которое всем этим дирижирует
47 Valdis2007
 
20.06.24
07:28
(45) +1
Проблема вобора уровня"дискретизации данных"....

фундаментальная проблема теории информации