Имя: Пароль:
1C
1С v8
Заполнить реквизит одного документа при проведении другого
,
0 heavenly
 
28.08.11
00:43
Платформа 8.2.13.219
Комплексная Автоматизация 1.1.12.1

Стоит задача при проведении входящего платежного поручения проставлять в поле ДатаОплаты заказа покупателя (поставщику) дату платежного поручения. При отмене проведения дата должна удаляться.
Собственно как это реализовать? Прописать в процедуре ПриЗаписи() платежного поручения необходимые манипуляции или делать с помощью движений регистров? Если первый вариант, то в какую процедуру запихивать очистку реквизита при отмене проведения?
1 Злобный Фей
 
28.08.11
00:44
(0) Не надо так делать
2 heavenly
 
28.08.11
00:46
(1)Почему? это же просто реквизит планируемой даты оплаты - по-крайней мере так написано в Справке, хотя по этому реквизиту у нас все менеджеры смотрят - пришла оплата или нет) Сейчас ставим его ручками при загрузке платежки.
3 Aleksey
 
28.08.11
00:49
(2) Нет гарантии целостности. Т.е. нет гарантии что при проведении одного документа 100% изменяться реквизиты другого. Например кто-то в нем сидеть может в данный момент, или еще какая транзакция
4 ДенисЧ
 
28.08.11
00:51
очень плохая идея... Лучше регистр завести.
5 Либерал
 
28.08.11
00:51
то же полагаю это не лучший способ контролировать оплату... но если "все пацаны"... - сделай подписку на событие.

про регистры вообще не понял. хотя, если это мысль в сторону отслеживать оплату заказов через запрос к регистру (например в УТ есть "расчеты с покупателями") - направление мысли целиком поддерживаю!
6 Злобный Фей
 
28.08.11
00:51
(2) А если, например, оплата тремя платежами? ну и (3)
7 Либерал
 
28.08.11
00:55
(6) +100

хотя, если бизнес-процессы у товарисча "отлиты в граните" и "у нас такого не бывает" (и не будет никогда?? точно???) - почему бы и нет. Вот еще, отчеты какието открыватть настраивать! а так раз - журнал заказов - колонка дата оплаты - всем счастие...
8 heavenly
 
28.08.11
01:19
(5) в КА этот регистр накопления называется "Расчет с контрагентами". Вопрос теперь как его лучше задействовать?
9 Amiralnar
 
28.08.11
05:24
По моему, он сам работает, без посторонней помощи. Анализ заказа открывать пробовали?
10 heavenly
 
28.08.11
12:36
(9) пробовали, но это все лишние щелчки мыши
11 Amiralnar
 
28.08.11
13:32
Один. ))
12 heavenly
 
29.08.11
21:45
В случае использования подписки на события не может ли возникнуть ситуация как в (3)? т.е. если кто-нибудь сидит в заказе, то дата проставится или нет?
13 heavenly
 
29.08.11
23:01
Ась?
14 heavenly
 
31.08.11
13:39
Сделал через подписки на событие
Процедура ПриПроведенииПлатежногоПорученияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
   
   Если ЗначениеЗаполнено(Источник.РасшифровкаПлатежа.ВыгрузитьКолонку("Сделка")[0]) Тогда
       Дата = Источник.ДатаОплаты;
       Сделка = Источник.РасшифровкаПлатежа.ВыгрузитьКолонку("Сделка")[0].ПолучитьОбъект();
       Сделка.ДатаОплаты = Дата;
       Сделка.Записать();
   Иначе
       Сообщить("Не заполнен заказ (счет на оплату) покупателя (поставщику) в "+Источник);
   КонецЕсли;
   
КонецПроцедуры
15 Amiralnar
 
31.08.11
14:33
Наделал себе под писку - так не позорился бы на людях. Стыдоба. Сказали же, как правильно.
16 heavenly
 
31.08.11
14:42
(15) И куда этот регистра пихать? Отдельной колонкой? В журнале заказов?

Вариантов того, что кто-то будет в это время что-нибудь менять в заказе - очень мала. Заказ составлен, любые изменения с помощью Корректировки заказа.
17 Amiralnar
 
01.09.11
05:29
(16) Именно так. Это не сложно.

А по (14) нужно делать проверки:
РежимПроведения - бывает разным.
Источник.РасшифровкаПлатежа.ВыгрузитьКолонку("Сделка")[0] - расшифровка платежа может быть пустой. Может быть из двух, трех записей.
Сделка.ДатаОплаты = Дата - дата может быть пустой, а дата оплаты может быть заполнена.
18 Amiralnar
 
01.09.11
05:30
+(17) Дата может равняться дате оплаты. Это тоже необходимо учесть.
19 heavenly
 
03.09.11
11:56
(17) РежимПроведения - бывает разным - вроде все работает, как при оперативном, так и при неоперативном.
расшифровка платежа может быть пустой. - потому и стоит ЗначениеЗаполнено() Если пустой, тогда Сообщение().
Может быть из двух, трех записей. - Может, но у нас одна платежка - один счет. Хотя проверку на всякий случай сделать надо.
дата может быть пустой, а дата оплаты может быть заполнена. - и кто ее заполнил? только если кто-то вручную проставил, ничего страшного если проставится датаоплаты по платежке.
20 vs84
 
03.09.11
11:58
А если частично заказ оплачен?
21 heavenly
 
03.09.11
12:00
(18) а это на что может повлиять? немного не понял...
а за конструктивную критику спасибо)
22 heavenly
 
03.09.11
12:01
(20) отгрузка только после 100 предоплаты - галочка в договоре стоит.
23 heavenly
 
03.09.11
12:02
(20) или имеется ввиду, что дата будет проставляться даже если заказ частично оплачен? тогда понял...
24 heavenly
 
05.09.11
20:07
(20) откопал в типовой КА запрос на выбор суммыоплаты и суммызаказа, только понять не могу все что после ИЗ стоит.
Конструктор запросов ругается на ошибку


               "ВЫБРАТЬ
               |    РасчетыСКонтрагентамиОбороты.Сделка КАК Сделка,
               |    ПРЕДСТАВЛЕНИЕ(РасчетыСКонтрагентамиОбороты.Сделка) КАК СделкаПредставление,
               |    РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход КАК СуммаЗаказа,
               |    РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход КАК СуммаОплаты
               |ИЗ
               |    РегистрНакопления.РасчетыСКонтрагентами.Обороты(
               |            ,
               |            ,
               |            ,
               |            ДоговорКонтрагента = &ДоговорКонтрагента
               |                И Сделка В (ВЫБРАТЬ РАЗЛИЧНЫЕ Сделка ИЗ ТаблицаСделок)) КАК РасчетыСКонтрагентамиОбороты
               |
               |ДЛЯ ИЗМЕНЕНИЯ";
25 heavenly
 
06.09.11
13:34
С запросом разобрался, только если его вставить в подписку на событие ПриПроведении, то значение СуммаОплаты в отладчике без учета проводимой платежки. Т.е. получается на момент выполнения подписки, движения по регистрам еще не были сделаны. Я думал подписки на события всегда после этих самых событий выполняются. Как быть в этом случае?
26 heavenly
 
06.09.11
13:36
Как вариант дописывать сумму платежки к существующим оборотам, но по-моему это немного кривовато.
27 heavenly
 
06.09.11
14:17
Использовать ПриЗаписи?
28 heavenly
 
06.09.11
14:27
(27) сам спросил, сам ответил) нет не ПриЗаписи.
29 ssh2006
 
06.09.11
14:35
Не делай такую доработку, ты как программист системы должен предложить иное решение для контроля оплаты. Не разрушай конфигурацию.
30 heavenly
 
06.09.11
14:57
(29) и где здесь разрушение?
31 Amiralnar
 
06.09.11
15:02
Сдается мне, если бы его работодатель знал, что он оплатил несколько дней работы программиста, которые стоят юзеру одного койка мышкой, он бы этого программиста в ж о п у в ы е б а л.
32 heavenly
 
06.09.11
15:35
(31) вы все про Анализ Заказа покупателя намекаете ;)
33 PVV65
 
06.09.11
15:57
(0) Совершенно непонятна конечная цель этих телодвижений. ЗАЧЕМ ВСЕ ЭТО ??? В конфигурациях все предусмотрено. Если нужен специальный анализ - напиши свой отчет. И не лезь в конфу.
ТС может объяснить - что будет дальше с датой оплаты в заказе?
34 heavenly
 
06.09.11
16:02
(33) Цель автоматически заполнять реквизит ДатаОплаты в Заказе покупателя при формировании платежного поручения, чтобы журнале заказов уже была видна эта дата оплаты, без нажатия всяких отчетов и анализов.
35 PVV65
 
06.09.11
16:12
(34) Реквизит "ДатаОплаты" заказа покупателя имеет другое назначение - он используется для планирования платежей. Использовать его не желательно.
Использование списка документов для анализа оплаты ?...
Представляю как бухгалтера смотрят на список документов и объясняют кому то - что то.
просто необходимо заставить себя и окружающих пользоваться отчетами. Иначе так и будете считать на счетах.
36 heavenly
 
06.09.11
16:51
(35)бухгалтера знают куда смотреть, а вот менеджеры... а так смотрят журнал заказов и сразу клиенту говорят - пришла оплата по этому счету или нет, и если да, то когда, не нажимая при этом анализ и не ища заветную графу.
37 ssh2006
 
06.09.11
16:55
Пойми, ты работаешь, например, не с чистым листом в экселе, куда лепишь формулы, где захочется, а с готовой системой, которая предполагает определенную логику работы и грамотную модификацию. Твоя задача как специалиста решить вопрос грамотно, не ломая дров.
38 FIXXXL
 
06.09.11
16:59
(36) я для этого рисовал в журнале внизу два окна: слева - отгрузки, справа - платежи
ну и при получении данных обновляешь инфу в окошках
39 Di_key44
 
20.09.11
00:30
Уважаемые, подскажите, у нас дата оплаты проставляется автоматически при оформлении заказа, как это отключить??
40 Alex375
 
20.09.11
04:17
А еще можно при отображении строки списка заказов обратиться к платежкам и получить есть или нет оплата. Соответственно вывести в строке списка флаг "Оплачено". Изменений минимум и блокировок не будет. Правда отображение списка заказов поднагрузится :)
41 pessok
 
20.09.11
10:07
(40) дак тогда можно и строки красить. Помню занимался таким ужасом... свят-свят :) И ведь не докажешь начальству, что это глупо и нелепо...
42 Di_key44
 
20.09.11
22:10
Подскажите пож-та подробнее как это сделать, я ещё только учусь)))
43 sapphire
 
20.09.11
22:49
Омистинеть можно. Ужас.
44 Di_key44
 
20.09.11
23:15
)))) Да, понимаю, ужас, а что делать, если у нас программист знает не больше меня
45 sapphire
 
20.09.11
23:17
(44) А программист, он же и консультант, он же и админ, он же погоняло для манагеров и груша для бития бушками?
46 Di_key44
 
20.09.11
23:23
ну знает то он может и побольше, только ему обычно некогда такими мелочами заниматься. При том он еще и не в штате, а со стороны, приходит так иногда.
47 sapphire
 
20.09.11
23:28
(46) Обратись к автору (35), может что и подскажет, я УТ новую не зрел, но припоминаю, что там это поле дейстивтельно закрывалось какой-то обработиной по регламенту.
48 PVV65
 
24.09.11
13:45
(39) КА у меня нет, расскажу как в УПП.
Заказ покупателя, по логике конфигурации, оформляется с предположением, что товар будет оплачен. Поэтому дата оплаты всегда равна дате документа плюс число дней резерва без оплаты из договора (подразумевается, что товар по заказу резервируется, а иначе зачем оформлять заказ - оформляйте счет - он ни к чему не обязывает). Если же в организации подразумевается обязательное оформление заказа, то, наверное, менеджер сам должен проконтролировать дату оплаты, т.е когда покупатель собирается платить. Без изменения кода не заполнять дату оплаты нельзя.
Я для менеджеров по продажам пишу специальные обработки, в которых в зависимости от различных условий контролирую правильность оформления заказа.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой