Posted: 14 Jan 2004 11:35 Post subject: Юридический и фактический адрес в счет-фактуре.
Простейшая проблема: у покупателя есть юридический адрес и адрес доставки. Требуется в адресе грузополучателя выводить адрес доставки, а в адресе покупателя соответственно - юридический адрес. Два пути выхода либо связываться с дополнительной аналитикой, либо разбивать поле адрес в карточке партнера на учет по сторокам: первая - адрес доставки, а третья, например, юридический.
Нашелся help по использованию Fileeval для такого случая вида следующего:
-------------------------------------------------------
Например, нужно получить данные из поля "Адрес" справочника партнеров:
В поле partner->adress хранятся все четыре строки адреса партнера, на каждую из строк приходится 60 символов. Т.е. чтобы извлечь третью строку, можно написать следующее:
//выбираем запись из справочника партнеров с кодом доп.аналитики CCodeDop:
dbpush("PARTNER","CODE","CODE=CCodeDop",{})
//извлекаем подстроку и убираем пробелы (121=60*2+1)
aglobvars[1]:= alltrim(substr(partner->adress,121,60))
dbpop()
Чтобы выполнение этой конструкции происходило один раз, а не для каждого ТМЦ из списка, то лучше ее вынести в отдельный fileeval, а вычисленное значение можно использовать в основной программе.
При внедрении fileeval необходимо протестировать на рабочей базе!
--------------------------------------------------------------------------------
но эта вещь не работает... ошибка выполнения строки... А в чем ошибка непонятно. Проблема простейшая, а решения нет. Помогите, плиз !
Дело все в том, что в шаблонах счетов-фактур нет параметра CCodeDop (он - в шаблонах счетов), но там есть, например, CodPokup - код покупателя.
Поэтому можно попробовать следующий вариант:
Да, совсем, забыла, если у вас нет в партнерах физических лиц, то можно использовать индекс "CODE" (как было в вашем примере), а если лица присутствуют, то индекс надо изменить, в моем примерчике - это "S_NAME".
Вышесказанное относится к печати счет-фактуры непосредственно из Продаж.
Если печатать счет-фактуру из накладной (Ctrl-F9), то действительно нужно воспользоваться параметром CCodeDop. Тогда получится:
Code:
if select ("PARTNER")<>0
dbpush("PARTNER","S_NAME","CODE=CCodeDop",{})
aglobvars[1]:= alltrim(substr(partner->adress,121,60))
dbpop()
aglobvars[1]
endif
If-ENDIF для того, чтобы при привязке шаблона ошибка не выдавалась
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum