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

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

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


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 49 50 51 52 53 54 55 56 57 58 59 ... 95 След.
Неудачная попытка скомпилировать файл в Бэсте 5 вер 3,3 SP 38
 
БОльше никуда ничего не надо.
При старте сс ключом d окно дебагера открывается в БЭСТе ?
Ведение номенклатурного справочника с ОКЕИ, как сделать контроль из документа?
 
Евгений я уточнил.
Из-за срочных задач был выпущен внеплановый пакет и получил номер 20.
Так что это в 21 пакете будет.....
Ведение номенклатурного справочника с ОКЕИ, как сделать контроль из документа?
 
Цитата
itman пишет:
Какое событие, или каким образом можно осуществлять контроль при вводе новой позиции из накладной?

Событие было обещано в 20 пакете, но я его там не нашел :sad:
Неудачная попытка скомпилировать файл в Бэсте 5 вер 3,3 SP 38
 
Цитата
gabov пишет:
Только вот п.6 никак не могу выполнить.Никак не ставится точка останова.

Пропишите ALTD() перед SayAndWait()
Откомпилируйте с отладчиком
Прим старте БЭСТа открывается debug - окно, его закрывать не надо.
Его надо свернуть.
После старта плагина смотрим текст задачи в этом окне и в нем собственно и занимаемся отладкой.
Курсор должен выделить строку останова.
Импорт цен из Excel в прайс лист
 
Цитата
Александр Батищев пишет:
Как правило логику идентификации и приходится программировать...

Эту логику прекрасно можно достигать также средствами excel
Это уже как говорится на выбор заказчика.
Списание и экспорт остатков, пакетно
 
Цитата
rerf пишет:
не к сожалению выхода кроме как каждую позицию в ручную вбивать не нашлось

не верю - существует режим импорта строк из Excel.
сделать экспорт остатков также не сложно
Импорт цен из Excel в прайс лист
 
Импорт данных из Excel штатная возможность БЭСТ-4.
Для этого главное чтобы строки можно было идентифицировать по группе и номенклатуре.
Решение этого Вопроса можно обеспечить разными способами, как непосредственно в Excel, так и средствами программрования в БЭСТ.
Требуется ограничить возможность выписывать накладные по ценам ниже минимальных
 
Цитата
Александр Гершанов пишет:
Я считал, что раз я нахожусь внутри накладной на вводимой строке, то могу использовать выражения типа,

CENA_TEK:=mdocm-> CENAOUT
cena_min := SPR_PART->OCENA1


Работа с накладной производится посредством специализированного класса.
Поэтому значение строки надо брать не из базы.
Для этого в событии на проверку вставьте простенькую программу с отладчиком и через нее в Private переменных познакомьтесь с объектом aWindow.

P.S. Поскольку проводки формируются не только внутри документа, делать нулевую проводку мягко говоря опасно, ну или придется вставлять дополнительные проверки.
Использование переменных nNumber и nKOLSTROK в HFILEEVAL
 
У нас есть уже наработки в плагинах в Питере много всего в серых окнах.
Я постараюсь сделать демоверсию и выложить в качестве примера возможностей.
Сейчас идет процесс составления документации. Как будет готова документация по возможностям в гриде, сразу дам посмотреть все, что реализуемо.
Мне просто надо время на все.
И такие меолчи как пометка строк мы делали.
Сейчас изучаем возможности пометки столбцов грида.
Использование переменных nNumber и nKOLSTROK в HFILEEVAL
 
Евгений можно сначала.
Вы пишете в своем плагине ?

И еще - у меня есть рабочая версия, надо порыться в ней.
Этот Вопрос может подождать пару-тройку дней или надо срочно ?
Использование переменных nNumber и nKOLSTROK в HFILEEVAL
 
Евгений а с чего ты решил что они есть или должны быть ?
Где ты это пытаешься применить ?
Формирование проводки при импорте строк
 
Цитата
AndrV пишет:
Расчет себестоимости не делается.
Я наверно невнятно воппрошаю, попробую подробней:
(учет сортовой)

При сортовом учете без расчета себестоимости обойтись нельзя....



Цитата
AndrV пишет:
В поле mdocm->kolned при записи док-та расхода фиксируется последняя цена поставки по позиции, которая хранится в mlabel->ocena1. Это надо для получения отчетов по прибыли, наценкам и т.п. Теперь захотелось на забалансовом счете видеть эту валовую прибыль. Плагин для проводки (проводки формируются по каждой строке)


Короче делайте все на запись документа.
Поищите на старом форуме тему а также в хелпе к БЭСТ-4 посмотрите на описание функции GenPRO.
Т.е. на запись документа заполняетет нужные поля и потом по документу инициируете генерацию проводок. А в самой типовой операции ставите проводки не создавать...(ну или создавайте если хотите), но при записи они будут пересоздаваться в том числе и Ваша проводка.
И не заморачивайте себе голову импорт- не импорт.
В БЭСТ-5 вообще таких проблем не стоит в подобных задачах.
Касса (типовая операция с несколькими проводками)
 
Девушки да не мучайте Вы человека.
Сделайте в демобазе в типовой операции формулу IIF(S>0,0,S)
И увидите что появится проводкая с нулевым значением суммы.
Если сделать тоже самое в товарах - то она не появится.
Так всегда было еще в БЭСТ-4, БЭСТ умел не создавать нулевые проводки только в товарах.
Просят это сделать везде....
Формирование проводки при импорте строк
 
Знаете а вообще-то кривой способ есть - единица измерения.
Если сделать вторую единицу измерения равную основной, то по импорту можно закачивать в этой единице измерения, а при создании документа будут создавать по основной.
И вот по единице измерения создания строк можно проскочить.
Формирование проводки при импорте строк
 
Строки Вам так не определить. Самое главное проводку так делать нельзя, потому что если запустят расчет себестоимости или создание проводок в другом месте - то списка не будет вообще со строками.
Формирование проводки при импорте строк
 
По импорту строк эти переменные к сожалению недоступны.....
Зато доступны поля карточки партий, если у вас партионный учет и не все поля заполняются, то одной из полей можно задействовать для этих целей при импорте строк, а в событии на запись производить заполнение их значением.
Требуется ограничить возможность выписывать накладные по ценам ниже минимальных
 
Цитата
Александр Гершанов пишет:
Подскажите, пожалуйста, а что является признаком для БЭСТ, что бы ЗАПИСЬ НЕ ПРОИЗВОДИЛАСЬ (не выполнены условия на цены). Нет ли где образца концовки подобного плагина?


Александр RETURN .T. сохранение документа
RETURN .F. запись не производится
Программирование в БЭСТ 5, Связь между системным сегментом и файлом dbf
 
Я наверно либо сильно перегружен либо тупой - не могу никак понять суть проблемы до конца. А Вы можете мне в файлик пусть Excel положить пару десятков проводок, таких чтобы наглядно было видно вот эти проводки а из них я должен получить вот такие и
их список.
А дальше я хочу увидеть желание в двумерном массиве это крутить.

Что касается харбора - то он чудно вызывается в том же самом языке что Вы пишете и результат расчета может положить в переменную по которой Вы и сформируете проводку.
Т.е. харбору только выделяем роль более тонкой настройки выборки и фильтрации данных,
суммирование.
Алексей дайте пример и мы на нем разберем как на харборе сделаем вставку в Вашу групповую операцию абсолютно штатными средствами :lol:
[ Закрыто] УРОК 6, Работа над формой редактирования грида.
 
2.Вносим изменения в форму редактирования
Для простоты решения Вопроса рассматриваем пока только на основе поля номер доверенности.

- В BestIde открываем на редактирование форму frmDoveredit.prg
- В форму перетаскиваем объект TBObject
- в форму перетаскиваем объект xbButton
- в форму перетсакиваем еще один объект xbButton
(готовим два объекта под кнопки "ОК" и "ОТМЕНА")

- настраиваем в инспекторе
ВО
Код
name...........................BO
xbsClassName...................boDover

DSR
Код
BOObject.............................BO
TableName............................очищаем значение

Первая xbButton
Код
Caption................................OK
ModalResult............................mrOk
Name...................................btnOk

Вторая xbButton
Код
Caption................................ОТМЕНА
ModalResult............................mrCancel
Name...................................btnCancel


- На кнопке ОК делаем двойной щелчок мышкой - получилась заготовка в тескте прогамммы формы
- Повторяем действие на кнопке ОТМЕНА

- Вносим изменения в текст prg файла формы:

Определяем новые методы

Цитата
METHOD DocSave
METHOD DocClose

METHOD btnOk_Click
METHOD btnCanctl_Click

Переписываем метод From_Create
Цитата
::BO:Active:=.T.
::DS:Active:=.T.
::FormState:=p[1]

:!: FormState выполняет роль аналогичную nApp в InitList
Цитата
IF ::FormState=2
::bo:bo:append()

Отрабатываем открытие карточки по F4 (режим ввода)
:!: Не стоит покупаться на append() выполнение этого действия не означает что в
таблице dover.dbf появится новая запись. Ввод записи как бы разделен на две половинки.
Первую часть мы сейчас делаем и вносим данные в некую виртуальную таблицу.
Вторая половинка действия будет выполнена позже - непосредственная запись в таблицу.
Такой механизм позволяет нам легко реализовывать варианты отката, когда нажатие на
клавишу ОК или еще как-либо не инициирует реальную запись. Т.е. в случае кнопки ОТМЕНА
пустой записи в таблице не появится.
Цитата
elseif ::FormState=1
::ds:goto(p[2])

:!: От того что мы открыли новую форму еще не значит что курсор в DS стоит на нужной нам строке. Для этого вторым параметром при открытии формы мы передаем номер записи а тут выполняем переход на нее
Цитата
::bo:bo:edit()
endif
::ds:refresh()

После смещения курсора неплохо бы обновить данные в DS

В метод FORM_CLOSE() добавляем строку ::BO:Active:=.F.

В заготовку метода кнопки ОК вносим строки
Цитата
::DocSave()
::DocClose(0)

И в метод кнопки ОТМЕНА
Цитата
::Close(1)


Теперь собственно и выполним вторую половинку действия записи в таблицу
Цитата
METHOD DocSave class frmDoveredit
local lSave
lSave:=::BO:BO:SAVE()
RETURN lSave

Ну и последний метод для закрытия формы после работы со строкой БД
Цитата
METHOD DocClose(nAction) class frmDoveredit
if(::parent == nil) .and. (nAction == 0)
::ReturnValue:= ::DS:bo:Recno
endif
::Close(nAction)
RETURN .T.


Теперь опять компилируем для проверки на отсутствие синтаксических ошибок
удаленный склад, Обмен данными
 
Цитата
Ольга Клетнова пишет:
Либо как сейчас репликация,либо как в БЭСТ-4.

Как в БЭСТ-4 уже не будет, потому что это подход повторять было бы методически неправильно.
Вопрос упрощения обмена с удаленными данными складскими документами разработчику известен. Желание Заказчиков в этом плане понятно.
Работы ведутся в этом направлении.
Но именно как в БЭСТ-4 не будет...
Думаю что для решения Заказчику важно достижение цели, а не повторение один в один устаревших методов... так что потребность в упрощенном обмене обещали удовлетворить Вопрос в том, чтобы дождаться...
Адаптация плагинов Б-4 -> Б-5 (3,4)
 
Простите ввел в заблуждение
Открываем хелп в БЭСТ-5.34 и видим
Глава 2 Функции разработчика - прикладные функции

Цитата
__RUN("cmd.exe") //запуск с ожиданием завершения, то же что и run "cmd.exe"


RUN - это через command.com
а лучше
/***********
FUNCTION RUNApp(a,b,c)
//1й параметр - имя приложения. (с полным путём)
//2й параметр - параметры для приложения через пробелы, может не быть
//3й - логический, ждать ли завершения приложения. .Т. если ждать.
[ Закрыто] УРОК 6, Работа над формой редактирования грида.
 
1.Вносим изменения в грид и настраиваем МетаБО

ШАГ 1
- Открываем форму грида в BestIde
- Находим объект TBObject и перетаскиваем его на форму грида
- Вносим изменения в инспекторе

TBObject
Код
Name                         BO
xbsClassName             boDover

DS
Код
BOObject                     BO
TableName                 очищаем значение


- Вносим изменения в текст frmDover.prg

в метод FORM_CREATE
Цитата
::BO:Active:= .T.
::DS:Active:= .T.

в метод FORM_CLOSE
Цитата
::DS:Active:= .F.
::BO:Active:= .F.


ШАГ 2
Теперь для того чтобы наш МетаБО объект заработал нам надо создать класс для его описания

- Выделяем в проекте раздел "Программы" Файл - Создать новый - Модуль - ОК
- Переименуем файл в boDover.prg

Создание текста класса

- Сначала подключим необходимые определения
Цитата
#include "hbclass.ch"
#include "BO_const.ch"

-Теперь объявим класс и небольщой набор методов
:!: Количество методов гораздо больше, мы сейчас строим простейгий пример для начала
Цитата
CLASS boDover FROM clsMetaBO
EPORTED:
ACCESS ASSIGN METHOD NUMDOC()

:!: Для редактирования каждого поля таблицы надо делать свой подобный метод
Мы сейчас делаем ввод.корректировку пока на примере одного поля
Цитата
ACCESS METHOD FieldList()

:!: При наличии данного метода мы можем не прописывать в гриде перечень стобцов
Тогда они будут созданы автоматически на основе данного метода. Ситуацию, при
которой столбцы все-таки придется прописывать в гриде вручную рассмотрим дополнительно.
Цитата
METHOD Init()
METHOD Open()
METHOD Append()
ENDCLASS


Инициализация класса
Цитата
METHOD boDover:Init()
::clsMetaBO:Init()
::mboVersion:=1
::NameBO:="boDover"
::ModifyType:=mtNewEditDel
::clsMetaBO:subself:=self
RETURN self

Открытие баз
Цитата
METHOD boDover:Open()
RETURN ::clsMetsBO:Open("user\dover\dover.dbf")

Создание FieldList()
:!: Данный пример не показателен.Обязательно обратите Внимание на создание из списка
минимум в 2 строки
Цитата
METHOD FieldList()
Local s
s:= "NUMDOC;1;6;0;;Номер доверенности"
RETURN s

:?: Второй параметр строки - 1, говорит о том что тип поля "С".
Здесь должна быть ссылка на перечень вариантов. Обязательно с меня потребовать,если забуду :lol:
Цитата
METHOD boDover:Append()
IF !::clsMetaBO:Append()
Return .F.
EndIf
RETURN .T.

Ну и собственно метод заполнения значения поля в таблице
:!: Для каждого изменяемого поля следует создавать подобный метод
Цитата
METHOD boDover:NumDoc(value)
IF value <> NIL .AND. ::EditMode<>0
::DS:FieldValue("Numdoc",value)
ENDIF
RETURN ::DS:FieldValue("NUMDOC")


Компилируем и проверяем что синтаксических ошибок не допустили
[ Закрыто] УРОК 6, Работа над формой редактирования грида.
 
Продолжаем публикацию уроков.
В продолжение темы по уроку 4 рассмотрим создание формы редактирования грида.
Задавать Вопросы и обсуждать принцип работы мы будем здесь : Переход к обсуждению

СОДЕРЖАНИЕ УРОКА
1.Вносим изменения в грид для подключения МетаБО
2.Вносим изменения в форму редактирования
3.Подключаем вызов формы
4.Самостоятельное задание
Использование переменных nNumber и nKOLSTROK в HFILEEVAL
 
Алексей над хелпом обязательно будет работа еще вестись !!!
Вы пишите сюда или в HL - всегда постараемся подсказать.
Поиск данных на листе в EXCEL
 
По работе с Excel.
Я уже неоднократно замечал как с разнымси версиями приходится делать разные подходы, потому как в одной версии синтаксис работае, а в другой версии Excel - нет.

В результате тут наверно самое важное научиться пользоваться отладчиком.
Попробуйте через ALTD() остановиться в нужном Вам месте.

Потом в нижнем окне пробуем написать
?Range("A1"):SpecialCells(xlLastCell):Value
Смотрим какое возвращает значение или пишет что не знает такую функцию

Проверяю синтаксис, пробую его менять...
Если ничего не выходит

Тогда открываю Excel и средствами построения макроса - смотрю что он предлагает.
Пробую эти команды в отладчике.

Потом читаю документацию по VBA
И пробую новые команды.
И так до тех пор, пока в нужной точке задачи не получу оптимальный код.

Мне кажется что задача не понимает SpecialCells() - мы никогда таким не пользовались... Еще совет - лучше применять наверно EMPTY()
Тут надо с отладчиком поработать
Страницы: Пред. 1 ... 49 50 51 52 53 54 55 56 57 58 59 ... 95 След.