Имя: Пароль:
1C
1С v8
v8: Параметры записи/проведения документов
0 Fedor-1971
 
20.03.14
11:44
Доброго дня!
  Вопрос в следующем: возможно ли отследить при проведении или записи документа способ данного действия - интерактивно из интерфейса или программно? Нужно избежать взаимной блокировки документов при программной записи.
В 7.7 была возможность передать процедуре ОбработкаПроведения параметр группового (программного) проведения документов.
1 Maxus43
 
20.03.14
11:47
отследить в общем случае нельзя, только если программно проводить с определённым доп свойством.

Про блокировки - вобще не понятно
2 Fedor-1971
 
20.03.14
11:54
(1) Есть документ Заказ, из него программно формируется подчинённый документ Услуга. По заданию: при проведении (записи) документа Услуга, должна обновляться информация в документе Заказ.
То что пришло первым в голову: отработать из формы событие ПриЗаписи() - т.е. пользователь что-то изменил и сохранил документ, но документ Заказ открыт и записать оный уже проблема.
3 Maxus43
 
20.03.14
12:00
(2) в типовых такое есть, например синхронизация Счет фактуры и ПТУ/РТУ.
А как ты будешь боротся с блокировкой "когда документ открыт" - непонятно
4 Fedor-1971
 
20.03.14
12:02
(3) пока мыслю, через оповещение. Типа попытаться записать документ Заказ и если вылетели в исключение, то просто оповещаем о изменении в Услуге.
5 Maxus43
 
20.03.14
12:04
Ну тебе же нельзя чтобы Провели заказ, а Услуга так и не провелась? Значит при проведеии заказа - если ошибка при синхронизации, то и отказ проведения самого заказа
6 Fedor-1971
 
20.03.14
12:11
(5) В том и печалька, что Заказ сам может быть не проведен, а услуга проведена (типа заказ чего-то у сторонней организации). Собственно при проведении(записи) Услуги нужно обновить информацию в Заказе и записать оный, допустимо уведомить пользователя "проверь заказ №..., изменилась Услуга № ...". Не очень хорошее решение, но всё-же вариант.
7 Fedor-1971
 
20.03.14
12:15
По ходу, придётся сделать обработку, в которой одновременно будут светиться Заказы и Услуги при закрытых документах и всю работу с данной связкой построить через неё.
8 Maxus43
 
20.03.14
12:17
посомтри как в типовой сделано, зачем придумывать?
9 Kalambur
 
20.03.14
12:18
99% что все намного проще и можно было разрулить ситуацию типовыми документами с минимальной допиской.
7-шники внедряють ))
10 Fedor-1971
 
20.03.14
12:32
(9) шутник. Пример приведи, какими типовыми документами это можно реализовать?
(8) так смотрел, в тех что под руками, такой связки нет, или плохо искал (БП 1.6 УТ 2.3)?
11 Maxus43
 
20.03.14
12:59
(10) должна быть, в УПП точно есть, ищи типа
    УчетНДС.ПроверитьСоответствиеРеквизитовСчетаФактуры(ЭтотОбъект, "СчетФактураПолученный");
12 Fedor-1971
 
20.03.14
13:04
(10) спасибо буду искать.
13 Kalambur
 
20.03.14
13:12
(10) что именно? я не знаю для каких целей у тебя написан (перетащен с 77) документ "Услуга". Давай подробное описание документа тогда
14 Fedor-1971
 
20.03.14
13:24
(13) Ты ещё не понял что мне было нужно? тогда повторю:
Есть два связанных документа Заказ и Услуга при записи (проведении) документа Услуга нужно записать обновлённую информацию в документ Заказ.
Документ Услуга создаётся программно из документа Заказ.
Задача: избежать взаимной блокировки двух документов при записи.

Теперь подведи типовые документы под задачу.
15 х86
 
20.03.14
13:32
(0)вообще такие схемы 1С не рекомендует
все "пересекающиеся" данные перенести в регистр
16 Fedor-1971
 
20.03.14
13:44
(15)да, по ходу, это самый оптимальный вариант, каждый документ пишет в РС свою часть, а на форму считывает сводную информацию. Пример есть где посмотреть?
17 Kalambur
 
20.03.14
13:47
(14) у тебя самописка? если да, тогда делай блокировку связанного документа передоткрытием, если нет, то какая конфа?
18 Fedor-1971
 
20.03.14
13:55
(17) Самописанная. Не выход: Заказ уже открыт (и возможно что изменён), а из него пытаются сделать документ Услуга, который в свою очередь будет что-то писать в Заказ. Мрак!!!
Наверно, самый правильный путь с РС из (15) и оповещением открытых форм обоих документов. Попробую реализовать.

Всем спасибо.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший