Имя: Пароль:
1C
1С v8
Проблема с подпиской
,
0 fenlork
 
03.09.13
09:41
Уж не знаю что и делать!Большущая просьба направить на путь истинный( Хочу:
1.В спр.Контрагенты-если нет основного б/счета-то сделать его из нового созданного.
2.если в док.(Например Платежного поручения исх.)  у получателя(контрагента)-нет б/счета,создать его -и он тоже должен записаться как основной(т.к. первый).
что есть:источником взял:спр.Банковские счета-событие при записи.
Процедура ИзменениеОсновногоБанковскогоСчетаПриЗаписи(Источник, Отказ) Экспорт
          
    Контра = источник.владелец.ПолучитьОбъект();
    Если контра.ОсновнойБанковскийСчет = Справочники.БанковскиеСчета.ПустаяСсылка() Тогда
    Контра.ОсновнойБанковскийСчет =источник.ссылка;
    Контра.Записать();
    
          КонецЕсли;        
    КонецПроцедуры
из документа-все проходит на ура-и записывает и назначает и выделят(жирным шрифтом-это прописано в форме элемента спр Контрагенты), а вот из спр.Контрагенты не дает записать(т.к. объект уже записан!)-пишет, что операция не может быть выполнена из-за несоответствия версий или отсутствие записи в базе данных(возможно запись была изменена и удалена), если перед нажатием "Ок"-нажать кнопку "перечитать"-все записывается нормально. Очень прошу помочь, может изменить источник?
1 Maxus43
 
03.09.13
09:43
Записать();

убирай, когда подписка на контрагента
2 Нуф-Нуф
 
03.09.13
09:43
ужаснах
3 Rie
 
03.09.13
09:44
(0) Когда вызываете из справочника Контрагенты, то там у Вас Источник - это контрагент. С открытой формой элемента.
4 Maxus43
 
03.09.13
09:44
Вообще - напиши обработку, которая во всей базе заполнит эти поля, и для новых элементов контров проверку на заполненность.
Сам такой подход (0) - новое слово в нанотехнологиях просто
5 fenlork
 
03.09.13
09:44
(1)-если уберу не смогу из документов добавлять..
6 Maxus43
 
03.09.13
09:45
(5) ты эту подписку повесид и на документ? ничо что у докмента нет поля Владелец? Короче пересмотри логику
7 Нуф-Нуф
 
03.09.13
09:45
1. сделать подписку "передзаписью" у спр.контрагенты
2. в ней проверять наличие банковского счета
 2.1 если есть - подставлять как основной
 2.2. если нет - создавать и подставлять как основной
3. в подписке перед записью у платежного поручения - вызывать процедуру из п.2
8 fenlork
 
03.09.13
09:47
(7)спасибо, но вот только если есть еще какие то документы кроме платежного поручения, откуда можно добавить б/счет...
9 Нуф-Нуф
 
03.09.13
09:49
(8) у подписки могут быть разные источники
10 hhhh
 
03.09.13
09:50
(8) так, а вы не прокинете банк с таким подходом. С каким банком согласовали это? Со сбербанком? Что у контрагента вдруг появляется банковский счет?
11 fenlork
 
03.09.13
09:53
(8)-не совсем вас понимаю...
12 hhhh
 
03.09.13
09:54
(11) вы создали банковский счет контрагенту. В каком банке?
13 fenlork
 
03.09.13
09:56
просто бухи у нас /или логисты уж не знаю кто, хотят чтобы у контрагента-самый первый заведенный банковский счет-становился основным(дабы потом в документы всякие подставлялся автоматом, при этом на кнопку формы(сделать основным) нажимать лень
14 fenlork
 
03.09.13
09:58
а, я человек без опыта, без знаний-еще учусь..
15 Odavid
 
03.09.13
10:04
(0) вы смысл таких манипуляций можете объяснить? общий.
16 hhhh
 
03.09.13
10:05
(14) создать программно банковский счет не получится. надо вручную его вводить. Там номер счета, название банка и так далее,
17 Odavid
 
03.09.13
10:05
>>хотят чтобы у контрагента-самый первый заведенный банковский счет-становился основным
>>.если в док.(Например Платежного поручения исх.)  у получателя(контрагента)-нет б/счета,создать его -и он тоже должен записаться как основной(т.к. первый).
что есть:источником взял:спр.Банковские счета-событие при записи.
- великолепно.
А написать обработку, чтобы прошвырнулась по справочникам КОнтаргенты и БС, и установила первый счет в списке - основным?
18 Odavid
 
03.09.13
10:06
(16)>>создать программно банковский счет не получится
Получится
Как раз все реквизиты эти и вводятся.
19 fenlork
 
03.09.13
10:11
хех..они хотят сразу видеть-ввели они б/с и если нет у этого контрагента счетов вообще или нет -основного, то дать ему это свойство
20 Odavid
 
03.09.13
10:15
(19) >>ввели они б/с
счет вводится в справочник БС, который подчинен Контрагентам.
Тут и ловите при добавлении + Владелец.
И вся наука.
А не в документы лезьте с подпиской и записью...
21 fenlork
 
03.09.13
10:23
(20)-это в модуле спр.банковский счет?
22 fenlork
 
03.09.13
10:27
(20)-а у меня и не было подписки на документы-только подписка ПриЗаписи с источником спр.Б/с
23 Odavid
 
03.09.13
10:40
(21) да
24 fenlork
 
03.09.13
10:42
а "при добавление"-это что событие или? (оч плохие знания у меня)
25 fenlork
 
03.09.13
10:45
наверное событие выбрать "При записи"
26 Odavid
 
03.09.13
10:47
(24) событие ТП на форме справочника "ПередНачаломДобавления".
27 Odavid
 
03.09.13
10:48
(25) да успокойтесь вы со своей записью.
В 1С событие "запись" обрабатывается в наихудшем варианте - иемнно при записи, т.е. бестолково в 99% случаев.
Уж если так нужно что-то сделать с записью - используйте "ПередЗаписью".
28 Odavid
 
03.09.13
10:49
*ПриЗаписи - обработка уже ПОСЛЕ того, как произошла запись. Это 1с-стайл - писать одно, реализовать другое, подразумевать третье.
29 fenlork
 
03.09.13
10:49
(27)-я не беспокоюсь, я тупо не знаю, как действовать
30 fenlork
 
03.09.13
10:50
(28)-спс-запомню!
31 Odavid
 
03.09.13
10:51
(29) зайдите на форму справочника - элемент СправочникСписок на ТП - и поработайте с его методами и событиями.
Там - все, что происходит при ручном вводе нового элемента в справочник.
32 fenlork
 
03.09.13
10:54
(31)попробую