Страница 1 из 1

Создание накладной через объектный интерфейс

Добавлено: 08 апр 2011, 16:38
mwoland
Доброго времени суток. Часто приходится писать интерфейсы по обмену данными между галактикой и учетными системами заказчика. При импорте в галактику создание документов пишу через добавление записей в таблицы. Если, не дай бг, забудешь задать или ошибешься в каком-нибудь поле «для внутреннего использования» (для накладных - tipsopr, например) – при работе с загруженными документами лезут косяки, о которых, что самое неприятное, можешь узнать не сразу, а «когда уже поздно».
Топорно. Ненадежно. Неудобно.
Сейчас необходимо загрузить накладные 4-х видов.
Подскажите, пожалуйста, есть ли объектный интерфейс (или интерфейсы), позволяющий создать накладную, установить ее реквизиты, в том числе и вид, создать позиции ее спецификации, оприходовать накладную, задать ее сырьевую часть (если это накладная на приход гп, например) и при этом все «внутренние» данные заполнятся корректно и автоматически?

Re: Создание накладной через объектный интерфейс

Добавлено: 08 апр 2011, 20:33
edward_K
1. А почему не стандартным обменом через модуль обмен-бизнес документами? Там ведь все уже придумали за вас.
Чтобы привести к виду который можно грузить в галактику можно воспользоваться точками расширения - ищите на форуме как.
2. Если уж хочется руками, то каждый фейс на редактирование документа в основном также является объектом, к котором
в каталоге frm можно поискать соотв. vih. Например soprdoc.vih к накладным на продажу. Много он не умеет, но пересчитать налоги и сумму по накладной без проблем. Для ордеров есть makeorder. К сожалению он не берет все типы накладных(нужно пробовать)
Расходные и приходные он создает отдельными функциями

Код: Выделить всё

          Case KatSopr.VidSopr Of
          Word(201) :
          { iSoprDoc._SetTypeSopr(katsopr.vidsopr);
            // пересчитать сумму
            iSoprDoc.CheckSumma2(katsopr.nrec,true)

//            oMakeOrder.MakeRashOrd(jkatsopr.nrec,false, jKatSopr.dSopr,0,0,32,errF.handle);
//            oMakeOrder.MakeRashOrd(jkatsopr.nrec,false, jKatSopr.dSopr,0,0,33,errF.handle);
//  MakeRashOrder := oMakeOrder.MakeRashOrder(KatSopr.NRec, dForm, Counts, doDoocen, nDescr, frmHandle,
//                                            wParam, SkPr, wMode, wParam2);
             oMakeOrder.MakeRashOrder(jKatSopr.NRec, jKatSopr.dSopr, 0, True, boGetTune('Doc.NaslDescr'), errF.handle,
                                            1, 0, 1, 32);
          
          }
          Word(600) :
          { if katsopr.cpodrto<>0
            { RunInterface('L_SOPRDOC::CallMake', 600, katsopr.nrec, 1, 0, 1, katsopr.dsopr);
            }
          }
          Word(611) : { // акт об излишках
             var ww_firstrozn,ww_prRozn:boolean;
             ww_firstrozn:=true;ww_prRozn:=true;
             oMakeOrder.MakePrihOrder(jkatsopr.nrec,false,
             ww_firstrozn,ww_prRozn,
             0,32,0);
          }

Re: Создание накладной через объектный интерфейс

Добавлено: 09 апр 2011, 11:15
Алексей
при создании док-та всегда пишу тест с одной записью в ДБФ
импортю, захожу в док, правлю номер документа и иду смотрю журнал.
там сразу видишь, что забыл добавить, галя сама правит нужные поля :)
всю жизнь так делал :)