Всем привет. У меня такая проблемка: когда выбираем в каталоге "организации и банки" какую либо организацию и нажимаем печать(CTRL+P), выбираем из списка нужный отчет и он автоматом рассчитывает сальдо и добавляет его в отчёт. проблема состоит в том что мне необходимо сделать так чтобы такой же расчет происходил по определенной организации( с которой связан документ выбранный на форме "основание на продажу" в Сбыте).
Вот код в который необходимо "запихнуть" данную функцию
при необходимости могу сбросить код отчёта в котором эта функция используется. кто сталкивался с похожей проблемой или кто может направить в нужное русло помогите плиз)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
т.е. вы печатаете ДО на продажу и... так может проще доработать саму форму бизнес-текста, вместо докомпиляции интерфейса? печатные формы тоже подлежат доработке, изменению, вплоть до разработки новых на основании существующих прототипов.
в конфигураторе установите параметр forms.fcenv=on, получив отчет переключите закладку на "настройка отчетов" и стоя на форме нажмите ф4.
Алексей
Тоже заметил такую тенденцию: почему-то новички сразу начинают с докомпиляций, хотя редактировать формы (или даже создавать свои) проще, и, наверное, дерзать программировать в "Галактике" нужно с этого.
Алексей писал(а):т.е. вы печатаете ДО на продажу и... так может проще доработать саму форму бизнес-текста, вместо докомпиляции интерфейса? печатные формы тоже подлежат доработке, изменению, вплоть до разработки новых на основании существующих прототипов.
в конфигураторе установите параметр forms.fcenv=on, получив отчет переключите закладку на "настройка отчетов" и стоя на форме нажмите ф4.
я наверное немного не правильно выразился. отчет(который печатаю) находится в каталоге организаций, его редактировать ненужно. в нём есть функция расчета сальдо по выбранным организациям, и эту функцию нужно привязать к форме ДО(т.е при выборе документа из списка нужно пересчитывать сальдо поконтрагенту). как-то так.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Вы наверное неправильно поняли.... Почитайте vipprogr.chm что такое форма прототип и что такое присоединенная форма. А заодно что такое автономная(или ard). Последнюю можно вызвать из любой другой формы.
.AutoForm ShowErrorED(lTabN:longint;w:string)
.table blank
...
RunForm(ShowErrorED,gTabN,wstr1)
Вызвать присоединенную форму из другой нельзя!. В некоторых случаях можно вызвать фейс, который формирует поток для присоединенки - если он сам будет независимым. Лучше сделать объектный интерфейс(или просто интерфейс с параметрами) и вызывать уже его из ваших форм. Для ДО вам понадобится либо отдельная форма, либо докомпиляция с перехватом события cmPrintDoc. Вообще формы бизнес-текста(FCOM) считаются устаревшими.
edward_K писал(а):Вы наверное неправильно поняли.... Почитайте vipprogr.chm что такое форма прототип и что такое присоединенная форма. А заодно что такое автономная(или ard). Последнюю можно вызвать из любой другой формы.
.AutoForm ShowErrorED(lTabN:longint;w:string)
.table blank
...
RunForm(ShowErrorED,gTabN,wstr1)
Вызвать присоединенную форму из другой нельзя!. В некоторых случаях можно вызвать фейс, который формирует поток для присоединенки - если он сам будет независимым. Лучше сделать объектный интерфейс(или просто интерфейс с параметрами) и вызывать уже его из ваших форм. Для ДО вам понадобится либо отдельная форма, либо докомпиляция с перехватом события cmPrintDoc. Вообще формы бизнес-текста(FCOM) считаются устаревшими.
я просто хотел узнать, можно-ли "Вырвать" функцию из кода отчёта, и вставить его в виповский фай(*.vip) и откомпилировать( т.е. синтаксис кода будет таким же или переделывать) чтобы эта функция выполнялась перед загрузкой формы. новых отчетов создавать не нужно.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Вырвать можно. Объем переделки зависит от кода - от незначительных - заменить ., begin, end. на пусто, {, } до более маштабных, в данном случае наверняка надо переносить логическую таблицу из формы. Лучше переделать на отдельный фейс, который запускать как runInterface(...., nrec_организации) - в этом случае переделок будет меньше, да и в целях обеспечения унификации действий будет полезно.
edward_K писал(а):Вырвать можно. Объем переделки зависит от кода - от незначительных - заменить ., begin, end. на пусто, {, } до более маштабных, в данном случае наверняка надо переносить логическую таблицу из формы. Лучше переделать на отдельный фейс, который запускать как runInterface(...., nrec_организации) - в этом случае переделок будет меньше, да и в целях обеспечения унификации действий будет полезно.
спасибо за идею. пробую
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Ещё раз Здравствуйте. уже 4 день вожусь с переносом функции. всё компиляция проходит, переделал логические таблицы отредактировал сам код, реакции 0! попробовал привязать к кнопке тоже самое
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Espada писал(а):Ещё раз Здравствуйте. уже 4 день вожусь с переносом функции. всё компиляция проходит, переделал логические таблицы отредактировал сам код, реакции 0! попробовал привязать к кнопке тоже самое
По-моему, слишком всё усложняете. Для расчёта сальдо есть же стандартные функции: 'GetKontrBalance' (баланс расчётов) или 'Calc_NewSaldo' (бухгалтерское сальдо).
Последний раз редактировалось RAJAH 27 май 2013, 16:35, всего редактировалось 1 раз.
Письмо на деревню дедушке
....
Чтобы понять, что вы делаете неправильно сделайте простенький тестовый примерчик, типа вызвать сообщение, что то там изменить и код в студию.
Экстрасенсов тут нет, а просматривать километры кода, где кто то отжег нет ни у кого ни времени ни желания. Так что делайте фейс строк на 50, не больше и вместе с вызовом по кнопке сюда. Если чего не понятно где вы там бегаете используйте message или logstrtofile (а еще лучше сразу по переменной предусмотреть отключение такой отладки). Если фейс независимый, то можно юзать и отладку из сапорта. Из галки тоже можно, но вам нужно прочитать страниц 50 доки (vip.pdf кажется).
Espada писал(а):Ещё раз Здравствуйте. уже 4 день вожусь с переносом функции. всё компиляция проходит, переделал логические таблицы отредактировал сам код, реакции 0! попробовал привязать к кнопке тоже самое
По-моему, слишком всё усложняете. Для расчёта сальдо есть же стандартные функции: 'GetBalans' (баланс расчётов) или 'Calc_NewSaldo' (бухгалтерское сальдо).
Да дело в том что есть уже все вычисления, всё хорошо работает: когда формируешь определённый отчёт по организации(выбрав в каталоге организаций) он всё пересчитывает нормально, задача заключается в том чтобы эти же вычисления происходили при выборе документа в модуле "Управление сбытом=>Счета, ДО на продажу", соответственно по контрагенту связанному с этим документом.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
edward_K писал(а):
Экстрасенсов тут нет, а просматривать километры кода, где кто то отжег нет ни у кого ни времени ни желания. Так что делайте фейс строк на 50, не больше и вместе с вызовом по кнопке сюда. Если чего не понятно где вы там бегаете используйте message или logstrtofile (а еще лучше сразу по переменной предусмотреть отключение такой отладки).
код я просмотрел вроде всё нормально однако меня терзают смутные сомненья по поводу этой части:
create view condition org as basedoc.cdogovor=coGetTune('MYORG');
весь код компилируется, проверял с помощью message. Вроде нормально, однако изменений по организации (в каталоге организаций) никаких не происходит, будто эти вычисления вообще не привязаны к организации.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
create view condition org as basedoc.cdogovor=coGetTune('MYORG');
Вы ж про ДО на продажу говорили? А ограничение-то на контрагента указывает на собственную организацию (coGetTune('MYORG')), и, вообще, ссылка на каталог договоров (basedoc.cdogovor)!
Вы ж про ДО на продажу говорили? А ограничение-то на контрагента указывает на собственную организацию (coGetTune('MYORG')), и, вообще, ссылка на каталог договоров (basedoc.cdogovor)!
я просто делал по другому примеру) я немного не андестенд что сюда писать)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!