| 
    
        
     
     | 
    
  | 
КД. Конвертирование в операцию | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Wobland    
     13.03.13 
            ✎
    07:10 
 | 
         
        Есть вот такое желание (общего характера, т.к. хочу понять принцип): конвертировать некий документ с ТЧ в Операцию. Приёмник не имеет привычных ТЧ, которые можно было бы поставить в соответствие источнику, всё пишется в регистр. Как нормальные люди в таких случаях делают?
  
        Было бы неплохо сформировать в источнике ТЗ, выгрузить её, потом в приёмнике обработать как следует. Но никак не догоняю, как. Натолкните на мысль, плз  | 
|||
| 
    1
    
        Godofsin    
     13.03.13 
            ✎
    07:21 
 | 
         
        (0) В операцию не загонял, а вот в корректировку регистра делал. По сути, тоже самое     
         | 
|||
| 
    2
    
        GenV    
     13.03.13 
            ✎
    07:21 
 | 
         
        (0) Добавляешь группу-регистр в ПКО. Ну а данные для неё передаешь как для обычной ТЧ (можно переопределить КоллекцияОбъектов, можно через входящие данные). Это все на стороне источника.     
         | 
|||
| 
    3
    
        Wobland    
     13.03.13 
            ✎
    07:26 
 | 
         
        воот. а как данные передать?
  
        при выгрузке объекта: 
 
 в файле в упор не вижу никаких таблиц...  | 
|||
| 
    4
    
        ks_83    
     13.03.13 
            ✎
    08:18 
 | 
         
        (3) Ты когда конфу загружал в КД галочку напротив регистров ставил? Она по умолчанию не установлена.     
         | 
|||
| 
    5
    
        sanja26    
     13.03.13 
            ✎
    08:22 
 | 
         
        от документа в приемнике по сути только ссылка нужна, как регистратор     
         | 
|||
| 
    6
    
        Wobland    
     13.03.13 
            ✎
    08:23 
 | 
         
        (4) ставил. напротив регистров бухгалтерии и "выгружать движения только у непроводимых документов"     
         | 
|||
| 
    7
    
        Wobland    
     13.03.13 
            ✎
    08:25 
 | 
         
        (5) документ создаётся хорошо. сумма, к примеру, переносится. а вот ТЧ во что и как превращать? обработать как-то что-то на стороне приёмника - не проблема     
         | 
|||
| 
    8
    
        sanja26    
     13.03.13 
            ✎
    08:34 
 | 
         
        помню, что надо в выборку или результат запроса на стороне источника поместить, а дальше не помню)     
         | 
|||
| 
    9
    
        sanja26    
     13.03.13 
            ✎
    08:36 
 | 
         
        во входящие данные не вставляется?     
         | 
|||
| 
    10
    
        ДенисЧ    
     13.03.13 
            ✎
    08:55 
 | 
         
        в книге про КД есть пример переноса в операцию     
         | 
|||
| 
    11
    
        Wobland    
     13.03.13 
            ✎
    09:18 
 | 
         
        (9) вставляется. а не вижу в приёмнике. копипастил этот кусок ((3)) со своего рабочего кода (но в том случае в приёмнике был объект с таким именем - подставлялось само).
  
        (10) бояркин? не нравится он мне. но спасибо за наводку  | 
|||
| 
    12
    
        Сияющий Асинхраль    
     13.03.13 
            ✎
    09:24 
 | 
         
        Загрузи конвертацию бп 1.6->2.0. Там есть пример     
         | 
|||
| 
    13
    
        Wobland    
     13.03.13 
            ✎
    09:31 
 | 
         
        (12) о, пример! спасибо     
         | 
|||
| 
    14
    
        Wobland    
     14.03.13 
            ✎
    06:38 
 | 
         
        с помощью примера и литературы таки удалось создать то, что выглядит работоспособным. во всяком случае, принципиальных отличий от бояркинского кода не вижу.
  
        
 
 теперь втыкаюсь в следующую ошибку: Возврат мТаблицаПравилКонвертацииОбъектов.ПолучитьЗначение(НомерПКО, Реквизит); {\\TSCLIENT\D\1C\КОНВЕРТАЦИЯ\V77EXP_EP.ERT(9275)}: Номер за пределами значения! про отладчик знаю. но, быть может, кто-то умный раньше скажет, чего оно от меня хочет?  | 
|||
| 
    15
    
        Wobland    
     14.03.13 
            ✎
    06:41 
 | 
         
        а вот сейчас подумал, что тип субконтов приёмника включает в себя некоторые документы, правил на которых у меня нет. здесь собака порылась?     
         | 
|||
| 
    16
    
        Сияющий Асинхраль    
     14.03.13 
            ✎
    07:14 
 | 
         
        Так ты с семеркой работаешь, или с восьмеркой? Тема у тебя вроде в восьмерке стоит. А, судя по коду, работаешь в семерке... Если правил нет, скорее всего, просто не перенесется... Да, и, кстати, самый простой вариант переноса проводок в семерке - использовать документ бухгалтерская справка, а не операции...     
         | 
|||
| 
    17
    
        Wobland    
     14.03.13 
            ✎
    07:23 
 | 
         
        источник - семёрка, приёмник - восьмёрка. а вот сделать из документа бухсправку и уже справку отдать правилу - это идея..     
         | 
|||
| 
    18
    
        Wobland    
     14.03.13 
            ✎
    07:38 
 | 
         
        (17) а хрен там. нету в ТиС бухсправки ;)
  
        смотрю на типовые правила БП 1.6 -> БП 2.0, вижу тип СубконтоДт совсем пустой. у меня же - список из 87 позиций. как они этого добились?  | 
|||
| 
    19
    
        Wobland    
     14.03.13 
            ✎
    07:40 
 | 
         
        (15) да и какая источнику разница, какой тип имеет приёмник? у ПГКС Хозрасчетный стоит же галка "получать из входящих данных". какой-то мрачный тупик..     
         | 
|||
| 
    20
    
        Сияющий Асинхраль    
     14.03.13 
            ✎
    07:41 
 | 
         
        В принципе в БП 2 есть загрузка из 7.7, там наверняка и обработка бух операций есть, просто по коду надо найти где правила хранятся, чтобы поглядеть как они такую загрузку делают. Так что тут не надо особо изобретать. Я в свое время изучал выгрузку загрузку БП 1.6 -> БП 2.0 там операции очень легко переносятся, по сути надо только написать корректно алгоритм "ПолучитьПроводкиДокумента" а остальное элементарно...     
         | 
|||
| 
    21
    
        Сияющий Асинхраль    
     14.03.13 
            ✎
    07:43 
 | 
         
        +(21) Кстати указанный алгоритм "ПолучитьПроводкиДокумента" можно без проблем под 7.7 перенести     
         | 
|||
| 
    22
    
        Rie    
     14.03.13 
            ✎
    07:44 
 | 
         
        (14) Видимо, ИмяПКО для кого-то не задано.     
         | 
|||
| 
    23
    
        GenV    
     14.03.13 
            ✎
    07:45 
 | 
         
        22+ там еще по-моему для 7.7 нужно задавать ИмяПКОВидСубконто     
         | 
|||
| 
    24
    
        Wobland    
     14.03.13 
            ✎
    07:49 
 | 
         
        (22) да нет таких
  
        (23) это что такое?  | 
|||
| 
    25
    
        GenV    
     14.03.13 
            ✎
    07:51 
 | 
         
        (24) Переменная, в которую в обработчике субконто нужно присвоить имя ПКО для вида субконто.     
         | 
|||
| 
    26
    
        Wobland    
     14.03.13 
            ✎
    07:52 
 | 
         
        (21) можно. упрощённо оно у меня в (14) формирует нужную ТЗ. но не выгружает.
  
        я б даже уже пустых правил понасоздавал под все типы субконто, да вот 1) будет ли смысл? 2) 87 штук только для дебетового...  | 
|||
| 
    27
    
        Wobland    
     14.03.13 
            ✎
    07:58 
 | 
         
        ИмяПКОВидСубконто - имя правила конвертации, по которому производится преобразование вида субконто (только для свойств СубконтоДт и СубконтоКт записей регистра бухгалтерии). Может быть выбрано в зависимости от каких-либо условий.
  
        уже лучше. судя по ругани уже что-то пытается с номенклатурой сделать. продолжаю тыкаться наощупь ;)  | 
|||
| 
    28
    
        Rie    
     14.03.13 
            ✎
    08:01 
 | 
         
        (27) А зачем наощупь тыкаться-то?
  
        Смотри ПКС для того свойства, где у тебя номенклатура конвертируется. И задай (присваиванием) ИмяПКО и ИмяПКОВидСубконто в обработчике ПередВыгрузкой.  | 
|||
| 
    29
    
        Wobland    
     14.03.13 
            ✎
    08:07 
 | 
         
        (28) в этом месте пока не догоняю. СубконтоДТ - это ТЗ (ну ждёт оно ТЗ на стороне приёмника), в ТЗ в колонке "Значение" имею значения двух типов - Номенклатура и Склад. в каком месте нужно присвоить в ИмяПКОВидСубконто то или иное?     
         | 
|||
| 
    30
    
        Wobland    
     14.03.13 
            ✎
    08:09 
 | 
         
        (28) при выгрузке, кстати. ибо перед выгрузкой у меня Значение ещё Неопределено. а вот в этом месте имею ТЗ...     
         | 
|||
| 
    31
    
        Сияющий Асинхраль    
     14.03.13 
            ✎
    08:10 
 | 
         
        Вряд ли чисто семерочный вариант из книги прокатит для загрузки в восьмерку, хотя бы даже потому, что реквизитов в восьмерке несравнимо больше того, что передается для семерки     
         | 
|||
| 
    32
    
        Rie    
     14.03.13 
            ✎
    08:10 
 | 
         
        (29)
  
        Если СубконтоДт.Значение.Вид()="Номенклатура" Тогда ИмяПКО = "ИмяПКОДляНоменклатуры"; ...  | 
|||
| 
    33
    
        Wobland    
     14.03.13 
            ✎
    08:14 
 | 
         
        (32) Сообщить(""+Значение+"//"+ТипЗначенияСтр(Значение));
  
        ТаблицаЗначений//ТаблицаЗначений  | 
|||
| 
    34
    
        Rie    
     14.03.13 
            ✎
    08:16 
 | 
         
        (33) Странно. Поскольку у тебя
  
        СубконтоДт.Значение=НекийТовар;  | 
|||
| 
    35
    
        Wobland    
     14.03.13 
            ✎
    08:17 
 | 
         
        (34) а перед этим
  
        СубконтоДт=СоздатьОбъект("ТаблицаЗначений"); СубконтоДт.НоваяСтрока();  | 
|||
| 
    36
    
        Rie    
     14.03.13 
            ✎
    08:20 
 | 
         
        (35) А зачем ты через ВходящиеДанные передаёшь?
  
        У тебя же источник в правиле не задан?  | 
|||
| 
    37
    
        Wobland    
     14.03.13 
            ✎
    08:20 
 | 
         
        +(35) у бояркина в этом месте создаётся ТЗ. плюс у меня раньше была ошибка "что-то там не является ТЗ"     
         | 
|||
| 
    38
    
        Wobland    
     14.03.13 
            ✎
    08:21 
 | 
         
        (36) ваще-то задан. я документ хочу в операцию превратить     
         | 
|||
| 
    39
    
        Wobland    
     14.03.13 
            ✎
    08:22 
 | 
         
        (36) источник у правила задан, у ПКГС нет, там галка про входящие     
         | 
|||
| 
    40
    
        Rie    
     14.03.13 
            ✎
    08:27 
 | 
         
        (39) Не пихай в Хозрасчетный таблицы значений СубконтоДт и СубконтоКт. Создай колонки СубконтоДт1, СубконтоДт2, ...     
         | 
|||
| 
    41
    
        cw014    
     14.03.13 
            ✎
    08:28 
 | 
         
        Ну и я добавлю свою лепту. А откуда и куда ты собрался грузить то?     
         | 
|||
| 
    42
    
        Wobland    
     14.03.13 
            ✎
    08:31 
 | 
         
        (40) бояркин открытым по белому говорит, что для семёрки строго ТЗ. могу скрин показать, набивать лень ;)
  
        Сообщить(""+Значение.Значение+"//"+ТипЗначенияСтр(Значение.Значение)); вот так уже что-то более осмысленное. пойду ИмяПКОВидСубконто присваивать  | 
|||
| 
    43
    
        Wobland    
     14.03.13 
            ✎
    08:34 
 | 
         
        (41) сначала из образовательного интереса хотел из произвольных данных источника сделать бухоперацию. произвольные данные теперь - это документ. источник ТиС на 7.7, приёмник - БП 3.0     
         | 
|||
| 
    44
    
        Rie    
     14.03.13 
            ✎
    08:57 
 | 
         
        (42) Виноват, это я перепутал с какой стороны у тебя что.     
         | 
|||
| 
    45
    
        Wobland    
     14.03.13 
            ✎
    09:10 
 | 
         
        теперь имею следующее
  
        =============================== при выгрузке СубконтоДт 
 
 Дт: Номенклатура =+Товары//Справочник то есть в Значение присваивается элемент справочника. =============================== перед загрузкой ПКО Номенклатура Сообщить(""+Источник+"//"+ТипЗначенияСтр(Источник));
 говорит Номенклатура//Строка в конце одного правила это справочник, в начале другого строка. что за нафих?  | 
|||
| 
    46
    
        Wobland    
     14.03.13 
            ✎
    09:38 
 | 
         
        цитата из бояркина:
  
        http://s40.radikal.ru/i088/1303/f1/929ebe263697.jpg вот почему я бросил читать эту книжку. как понимать предпоследнее предложения? какая конвертация из ТЗ по разным правилам может быть? что за хрень он там несёт или как его следует понимать? кстати, 
 
 тоже не взлетает: {\\TSCLIENT\D\1C\КОНВЕРТАЦИЯ\V77EXP_EP.ERT(9344)}: Номер за пределами значения!  | 
|||
| 
    47
    
        Wobland    
     14.03.13 
            ✎
    11:31 
 | 
         
        при выгрузке СубконтоДт:
  
        
 
 перед выгрузкой ВидовСубконто: 
 
 в первом случае имеем справочник, во втором - строку. в файл элементы справочников-субконты присутствуют, в приёмнике пусто. теряю понимание...  | 
|||
| 
    48
    
        Rie    
     14.03.13 
            ✎
    11:48 
 | 
         
        (46) Он имеет в виду, что ИмяПКОВидСубконтот ты можешь назначить в обработчике события.     
         | 
|||
| 
    49
    
        Wobland    
     14.03.13 
            ✎
    11:57 
 | 
         
        (48) угу. имя ПКО для ТЗ? я это имел в виду
  
        +(47) а вот если б что-то было в источнике навроде ПВХ ВидыСубконто, тогда ... а хрен знает, что тогда. у меня в правило для ВидовСубконто попадает строка а-ля "Номенклатура" или "Склады"  | 
|||
| 
    50
    
        Wobland    
     14.03.13 
            ✎
    12:14 
 | 
         
        и возвращаемся к исходному вопросу. а нельзя ль как-то ТЗ прицепом к объекту пристегнуть? вон как в fb2 сделано:
  
        <image l:href="#image0.jpeg" /> а в конце сами картинки в двоичном виде <binary content-type="image/jpeg" id="image0.jpeg">/9j/4AAQSkZJRgABAQEAY  | 
|||
| 
    51
    
        Wobland    
     14.03.13 
            ✎
    14:12 
 | 
         
        в общем, я сдаюсь. вижу только два варианта обхода
  
        1) при загрузке стучаться в источник, по номеру и дате документа запрашивать нужные данные, как-то их превращать в желаемое; 2) добавить в конфигурацию источника документ-затычку, данные складывать в его ТЧ, в приёмнике доставать;  | 
|||
| 
    52
    
        GenV    
     14.03.13 
            ✎
    23:35 
 | 
         
        (49) А что правило не создать для ПВХ Виды Субконто (источник пусто) и передавать код вида субконто для поиска по нему?     
         | 
|||
| 
    53
    
        Wobland    
     15.03.13 
            ✎
    06:04 
 | 
         
        (52) попадает строка а-ля "Номенклатура" или "Склады"     
         | 
|||
| 
    54
    
        GenV    
     15.03.13 
            ✎
    06:53 
 | 
         
        (53) Правило создай для ПВХ с поиском по "Код", в ПередВыгрузкой "Код" укажи "Значение=Источник", а в обработчике субконто сохраняй не его имя в "Ключ", а его код в приемнике.     
         | 
|||
| 
    55
    
        Pasha    
     15.03.13 
            ✎
    06:56 
 | 
         
        (0) Если мне не изменяет склероз, то при выгрузке конфигурации в файл надо поставить флажок выгружать движения... И соответственно непосредственно в правилах прописать движения, которые надо сформировать...     
         | 
|||
| 
    56
    
        Wobland    
     15.03.13 
            ✎
    12:32 
 | 
         
        оно меня устало. при загрузке делаю запрос к внешнему источнику, формирую нужный набор записей регистра. пускай работает так ;)     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |