BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Запись в RBOOKM по событию "запись документа"

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Запись в RBOOKM по событию "запись документа", касается вообще записи в открытые базы изнутри документа
 
Добрый день!
Пишу плагин, который должен посчитать стоимость изготовления очков в оптике, и записать получившуюся сумму в строку "работа" (если она там есть)
В товарах всё работает... но в последний момент клиент увидел, что для продавца доступен просмотр закупочной цены.... пришлось перебираться в "продажи.клиенты". Может, кстати, подскажет кто вариант, как закрыть учётные цены в накладной в товарах?
Первый вариант, хотел прицепить файлеваль к строке калькуляции (например акциз) - не могу понять, как получить информацию, из какого заказа вызов? Где взять nnoper?
Второй вариант по событию "запись документа" работает (из реестра "по требованию" пишет как надо), но не желает записывать в RBOOKM обновлённые цифры в SUMOUT и SUMTOTAL.
Может есть способ изменить значение самих переменных SUMOUT и SUMTOTAL перед записью, чтобы БЭСТ сам записал правильные?
Спасибо. Покровский М.И. г.Тольятти.
Изменено: tis - 29.08.2013 17:17:55
 
Максим рассмотри лучше третий вариант - событие "вход в картотеку"
Оно внутри документа запускается по F4
там поставь диалог выбора ("картотека","рассчитать услугу")
При первом варианте открываешь штатную картотеку. При втором в список строк добавляешь услугу.
Она штатно добавится и потом штатно документ рассчитается и закроется с нужным заполнением полей
 
там есть два варианта услуг
- материалы наши, тогда стоимость услуги % по шкале от стоимости материалов
- наши только линзы, тогда ocena1 из услуги + % от стоимости линз.... продавец может в хаотическом порядке туда всё заносить, менять, в том числе осмотр у окулиста - с него услуги не берутся.... то есть просчёт в конце наполнения счёта, а не в начале
 
А это контролем перед записью проверять.
В обоих случаях ты не пишешь в таблицу а делаешь штатными средствами - вот что важно.
Последний вариант после записи через объект открыть заказ на редактирование и сделать ADDROW() но тоже штатно
 
Ещё Вопрос как в соседней теме.
Аптека... БЭСТ-Аптека... Краснодарцы утверждали, что у них плагин на запись документа (правда потом выяснилось, что в калькуляции, но калькуляция тоже не отрабатывает, приходилось потом идти в реестр и по F5 менять саму на себя типовую) однако, при формировании из их прихода ни на какие события/работу в документе плагин не работает, опять же надо идти в реестр приходных накладных и ручками... Я размышляю по аналогии, видимо, я не в тот реестр его прикрутил? Так куда надо? У них там нигде нет про спецфункции ни в каких менюшках.
 
я честно не понял Вопроса :)
У меня лично с работой событий проблем не возникает
 
Константин, Спасибо за вэбинар по отладчику, правда, я на этом нос уже расквасил, но кое что понятнее стало.
Уроки тоже изучаю.
я уже попробовал поставить контрагента по умолчанию, на вэбинаре собственно почти мой Вопрос ...
только я перед записью хочу поменять кое что в одной строке, сработает ли вариант записи напрямую в aWindow[2,7]:cargo[i] ?
или есть функция обратная getmat - что-то типа writemat?
так и не нашел список стандартных функций... ткните носом пожалуйста

яндекс, однако, http://www.spb4plus.ru/old/category-0?page=4 не подумал, что надо копать в сторону old...
разбираю пример:
oDocs:=ScladDocs():New() //коллекция накладных
oDoc:=ScladDoc():New() //создаем объект накладная
,,,
oDocs:AddDoc(oDoc) //добавляем документ в коллекцию
что здесь происходит, где почитать про ScladDoc, AddDoc?
Изменено: tis - 05.09.2013 21:19:06
 
Цитата
tis пишет:
сработает ли вариант записи напрямую в aWindow[2,7]:cargo

Сработать должен, но такая Идея мне не нравится.
Цитата
tis пишет:
или есть функция обратная getmat - что-то типа writemat?
Событие "работа в картотеке" этим занимается
Формируется специальный массив который внутри события можно обрабатывать а при завершении события он переносится в строки документа штатно
Цитата
tis пишет:
что здесь происходит, где почитать про ScladDoc, AddDoc?
Исходный код лежит у вас. Папку выше писал
 
Да, действительно, поиск FARом фрагмента по всем файлам в каталоге сотворил чудо...
Никак не нащупаю системности в подходе изучения этой темы, всё кусками, да шаг вперёд - два назад...
Прошлой осенью посмотрел почти все вэбинары по новому МС вижуал... - вот она, среда разработки
Чем больше въезжаю в ХВА, тем глубже дежавю - 25 лет назад, я, восьмой класс, кабинет воняет краской и по периметру.... новенькие КОМПЮТЕРЫ, к которым на уроке училка близко не подпускает... после уроков втёрлись к ней в доверие и понеслась, даже давала домой забрать - на клаве кнопки заменить... о чём я? ах да! АССЕМБЛЕР... вот что мне напомнил ХВА... так же можно посмотреть стек, регистры... а для всего остального есть табличка из приложения к Юному Технику, любезно отксереная мамой на ВАЗе по большому блату...
Не пойму почему так, все знания о БЭСТе мне даются с потом и кровью. Поэтому он и такой любимый, поэтому с ним так трудно расстаться?
Почему бы в окно редактирования не прикрутить хотя бы F2/altF2? Сколько народу сказали бы:"Дааааа!!! Круто!!!!! Я за пол дня такого наворотил!!!!"
 
Пока не пойму в чем именно сложности. Для меня создание объектов - это как чайку попить :)
Быстренько сотворил и дальше пошел.
Если Вы про новые окна - то КБ не Borland надо признать :)
А про F2 вообще не понял - в инитлист именно так и работает.
Где- чего надо :)

Что касается ассемблера - то это намного лучше чем все визуальные средства сегодня - можете мне поверить.
Другое дело, что многие обленились - хотят за 5 минут налепить экранов и назвать это программой :lol:
В ряде случаев это разумеется оправданно ценой пожирания ресурсов и снижения скорости работы.
Ресурсы у многих достаточно большие. Скорость операции если вместо 1 сотой секунды станет одну десятую (скажем так не процессорной команды а некоей операции)
То за счет мощи процессора тоже многие не заметят замедлений.
Потом все это копится и складывается.
А потом оказывается что лучше на харборе подготовить данные а уже потом из них делать что-то красиво оформленное :lol:
И процедура которая работала несколько часов вдруг выполняется за несколько минут :)

Все относительно....
 
Вот я к Вам на этот "чай" и напрашиваюсь две страницы :)
Про F2 - это к окну редактора программы в IDE, список функций, как в том же ФР или екселе, подстановка в качестве аргументов объектов самой программы это конечно слишком, ну хотя бы объявленных переменных.
Эта интерактивность снимает очень много барьеров для новичка, а ведь с этого начинается самый первый ролик про отладчик, целевой аудиторией Вы видите продвинутых бухгалтеров, а никак не программистов, им и так всё ясно.
Три недели практически не выхожу из дома (технический прогресс не даёт - удалённый доступ меня инвалидом сделает, кстати - и лифт не работал), пытаемся сделать в БЭСТе рабочее место для оптики... сначала сделал всё в накладных - учётные цены видно, КПМ/фронтол отпадают их-за необходимости расчёта работ от суммы материалов и отслеживания предоплаты... Параллельно шла эволюция моих знаний, сначала делал всё как в четвёрке, через открытие баз, а Продажах не прокатило... Короче - решаемая задача диктует уровень знаний, тупо шерстить доку ради энциклопедических знаний можно впасть в уныние, живые примеры очень помогают развиваться. Я прошелся по хотлайну - вот это клад! Люди уже спотыкались о то же самое сто раз, во-первых, это подняло самооценку, там именитые корифеи признают своё бессилие перед "чашкой чая", во-вторых, удаётся подглядеть "пару приёмчиков" у мастеров (могу указать в special thank's), в третьих, вопрошающий иногда с трудом находит общий язык с профессионалом, это отдельная тема - как задать вопрос, чтобы ответ был именно на него (вопрос).
 
Теперь по делу.
Как я понял, раз уже все массивы заполнены по факту события "на запись", БЭСТу остаётся только дать команду oDocs:RUN() и документ будет записан?
То есть можно напрямую писать в aWindow[2,7]:cargo[1], а можно прямо здесь обратиться к oDoc: ?
Написать с нуля полностью необходимый интерфейс ввода накладной, как Вы советуете, мне сейчас сложновато, сейчас я хочу "пощупать" может не самое изящное решение, но понять суть работы с объектом изнутри. Сенсэй - покаж пиёмчик?
 
Цитата
tis пишет:
Как я понял, раз уже все массивы заполнены по факту события "на запись", БЭСТу остаётся только дать команду oDocs:RUN() и документ будет записан?

"массивы по факту события на запись..." - это не понимаю
oDocs:RUN() выполняет обработку пакетов документов собранных путем ручного создания объектов oDoc.
Цитата
tis пишет:
То есть можно напрямую писать в aWindow[2,7]:cargo[1], а можно прямо здесь обратиться к oDoc: ?
можно добавить строку (в принципе), но писать думаю что скорее всего нельзя (не советую)
Прямо здесь можно обратиться к массиву строк через событие. oDoc тут совсем ни причем - это совсем другое.
СОбытие передает строки в массив - надо посмотреть в отладчике имя, если не изменяет память ainsWork
Как работать с этим массивом была целая тема-урок
Цитата
tis пишет:
Написать с нуля полностью необходимый интерфейс ввода накладной, как Вы советуете, мне сейчас сложновато, сейчас я хочу "пощупать" может не самое изящное решение, но понять суть работы с объектом изнутри. Сенсэй - покаж пиёмчик?
полностью не советую. Я советовал сделать программу создания строки-услуги. А в событии перед записью контролировать ее правильность.
И если она некорректна заставлять заново ее переформировывать
 
я зашел в тупик...
есть позиции, по которым скидку давать нельзя (акция, последний экземпляр... итд, есть ещё позиции с максимальной границей по скидке)
а процент скидки в шапке счёта....
выходить, запускать плагин, который применит нужную скидку? а бэст использовать только для ввода позиций в документ???
надо бы файлеваль на применение скидки по строке (расчёт процента) сделать, тогда и шкалы на выделенные позиции и любую фантазию на 100 лет вперёд...
сформулирую, в хотлайн скину Вопрос.
может есть соображения, или предложить другое решение разработчикам?
 
Да говорю же использовать 2 события надо совместно: контроль записи и вход в картотеку.
На входе в картотеку перебираете строки на предмет контроля предоставленной скидки.
А контроль записи тоже на предмет предоставленной скидки и в случае, если надо делать пересчет - то отправлять выполнять первое событие и запрет записи
 
Хорошо, вот я в картотеке, как я могу повлиять на применение скидки? Может флаг какой опрокинуть?
К чему приведёт запрет записи???? оператор должен руками исправить цену, посчитав нужную на калькуляторе, и тогда программа посчитав свою сравнит и смилостивится записать документ?
 
Там есть "вход в прайс-лист" - на этот момент в документе может вообще не быть строк, а на запись строки события нет, а возможно интересно было бы перед этим что-то сделать
 
Цитата
tis пишет:
Там есть "вход в прайс-лист" - на этот момент в документе может вообще не быть строк
согласен
Цитата
tis пишет:
а на запись строки события нет,
есть событие контроль записи документа.
Проверили что скидки недопустимые, выдали сообщение и вернули False
тогда менеджер ДОЛЖЕН будет повторить событие вход в прайс и выбрать пункт меню (которое вы нарисуете) по контролю скидок
И вот там наведете порядок с правильной установкой скидок
 
Хорошо , вернулись в прайс-лист, но опять документ ещё не записан, строки лежат в aWindow[2,7]:cargo[i] - трогать его на запись Вы не рекомендуете, перебрали строки, нашли ошибки, знаем как исправить - вопрос, как исправить строки?
 
Цитата
tis пишет:
знаем как исправить - Вопрос , как исправить строки?
запустить событие вход в прайс-лист.
В нем выьираем пункт меню: моя программя исправления строк (шучу конечно - название дадите)
запускается программа и приводит строки в порядок
после этого опять кнопка "запись" (F10)
Опять запускается контроль и не обнаружив ошибок позволяет записать документ
 
Цитата
nordk пишет:
приводит строки в порядок
запустил, смотрю, не вижу механизма
 
поищите тему тут если не изменяет память массив aInsWork.
В него передаются строки документа, которые были набраны и по возвращению на основе этого массива строки переформируются или создаются
Штатно - что очень важно !
Страницы: 1
Читают тему (гостей: 1)