А еще, я думаю, дело в том, что в описании метода RUN сказано, что данный метод выполняет сохранение. Хотя теперь понимаю, что это не так.
Отсюда и пошли все неточности...
В приведенном случае я выполняю RUN, полагая, что он сохраняет, чего не происходит...
nordk пишет:
У нас в плагине RUN возвращает информацию всегда.
У меня тоже всегда все прекрасно. Только 1н случай с пустым массивом был. Из-за него весь шум-гам. Логика простая - если есть один случай почему не быть второму?
Цитата
nordk пишет:
Но мы импользуем это в товарах в расходе !!!!Даже принципы работы с приходом и расходом в товарах разные.А Вы вообще в производстве делаете.
Весело. Надо было в описании объектов с этого и начинать... (Хотя там кажется файлик склад называется, но я бы ни за что не подумал, что это ограничение...)
Цитата
nordk пишет:
Пустой массив также говорит о том, что изменений не было.
Ну вот, вот этого тоже, собственно не хватало...
По Вашему описанию получается что пустой массив не ошибка. Но если все же "опасаться" таких случаев, то я бы все же назвал небольшим недочетом. Парадокс: с одной стороны у разработчиков все верно, но с другой из-за отсутствовшего описания данный класс был "черным ящиком". И если не учитывать этот самый пустой массив, то, чисто гипотетичеки можно нарваться на ошибку.
Ведь теперь с данным описанием Удачное сохранение проверяется так:
Код
oErr:=oDocs:Run()
if (!Empty(oErr))
if (oErr[1][1])//случай с одним док.
lResult:=.T.
else
lResult:=.F.
endif
else
lResult:=.F.
endif
nordk пишет:
Повторяю еще раз мы уже задачу сдали и ОНА РАБОТАЕТ у клиента.Во вторых - это не ошибка.И там ничего и не должно быть
Ну, , тогда объясните пожалуйста это:
Цитата
Метод RUN() возвращает массив, каждый элемент которого описывает результат попытки сохранения документа:
{lResult,::NNoper,::Sclad,::Vid,::Type,::TypeEx,::Date,::CodeDoc,::NumDoc, nRecNo}
Цитата из описания объектов склада.
Скажите мне внятно, ТОЧНО и ДОСТОВЕРНО что именно и когда возвращает RUN!?
Не факт.
В случае непонимания актуальности а этим точно никто не захочет заниматься, но если актуальность будет четко разложена к Вашему мнению обязательно прислушаются
Так КБ - это кто? Куда обращаться, собственно...
По поводу сроков, увы, факт. Причина другая. Оплата продления гарантийного обслуж будет не раньше лета, а то и осени, а то и никогда...
nordk пишет:
Я просто хочу сказать что такие вещи в штатном реестре плагином делать не получится.
Варианта 2:
1.Писать свой реестр
2.Попросить у КБ нужну Вам доработку с обоснованием этой потребности как можно подробнее
Возможно в процессе рассмотрения Вашего а консультанты дадут Вам подсказку как можно решать штатными средствами.
А КБ-это ...?
В любом случае 2й вариант будет спустя вечность..
nordk пишет:
У МЕНЯ в плагине происходит.
Есть возможность ADDROW(). И при редактировании документа
мы добавляем в существующий документ строки в нашем плагине.
Мы планируем в перспективе задачу удаления строки получить от КБ. Но так или иначе работа с документом это не только его создание.
Очень интересно у Вас, значит происходит, а у меня значит нет. Позвольте полюбопытсвовать кусочек кода и что у вас в таблице в этот момент!?
Я свой код приводил здесь и не раз. При котором НИЧЕГО не происходит...
nordk пишет:
Контроль номера это локальная задача Вашего плагина.
Не вешайте это на объект.
Объект увидев номер переходит в режим редактирования и позволяет дополнять Ваш документ новыми строками.
Я что-то совсем не понял.
Какой еще режим редактирования? Вообще ничего не происходит при существовании такого же номера, понимаете? НИЧЕГО. Нуль эмоций, никаких признаков действий или чего-либо еще...
Цель импортировать данные в "Каталог товаров" из прайс-лист поставщика.
Если ли возможности для создания/изменения данных в "Каталоге товаров" с помощью объектов?
P.S. Мне понравилось создание накладных с помощью объектов (ScladDoc()). Теперь, если надо с помощью плагинов вносить/изменять данные в БЭСТ-е, то хочу делать это с помощью объектов :-)
А прайс-лист поставщика он в чем? [формат файла\данных]
И что такое "Каталог товаров"?
Артём Быков пишет:
Каковы приемущества данной системы по сравнению с 1С 8.0 (кроме, конечно, цены)???
На данный момент ищу альтернативу 1С'у.
Нашли место где спросить:).
Обратитесь к представителям Б-5 и 1С в своем городе, попросите устроить демонстрацию того, что Вам требуется от программы. По результатм и решите что Вам больше подходит...
Насколько мне известно 1С такое предоставляет(зависит, наверное от конкретной конторы). Б-5 по идее тоже. У Б-5 есть готовые решения под конкретные задачи их можно скачать на этом сайте.
ИМХО, проведение "миниконкурса" не повредит, если есть на это время. А дать однозначный ответ на типа "А какой город лучше?" или "Что лучше: Win VS BSD?" в двух словах Вам никто не сможет.
Сабж "1С VS Б-5". А критерии оценки? Пункты перечислите какие Вас интересуют!!! (Задачи каковы)
P.S. А альтернатив, наверное, не так много... Есть еще парусники; есть еще САП, но это из другой оперы...
P.P.S
Цитата
dm пишет:
я думаю где то году в 2004а если ссылки нет, значит затерли - там флем великий начался после этого поста
Когда-то я упоминал данную проблему, однако, она давно не повторялась и не "всплывала". Повторить ее не удавалось. Сейчас опять проявилась.
Фамилии сотрудников на рисунке подтер...
Пользователь 2 вошел в БД с сервера и начал индесацию без восстановления... Пути в блокировках к одной и той же БД получились разные. Индексация закончилась с ошибками.
Саак Шахламджян пишет:
Так вот это очень !!!! Просто хуже некуда!!!
Если в Б-5 такого события нет, почему тогда происходит возврат именно на ту строку, на которой стоял "курсор" до плагина (я специально менял скоб, чтобы он охватывал измененную запись, так вот после окончания плагина "курсор" оказывается именно на этой записи!!!!!!!!)
Плагин не должен МЕШАТЬ работать БЭСТу со штатными механизмами, поэтому после его выполнения разработчик заботится вернуть все как было до его запуска.
И это логично.
Когда появилась в БЭСТ-4 перемещать курсор на конкретную запись, вот тогда СПЕЦИАЛЬНО было добавлено событие это позволяющее сделать.
Как БЭСТ узнает, что смещение на другую позицию не плод некорректного кода Вашего плагина, а осознанный выбор ?
И уж тем более не надо пытаться менять скоб у открытого штатным механизмом алиаса, да к тому же когда на нем уже стоит скоб....
Я Вам написал Выше первым пунктом - открывайте таблицу со своим именем алиаса и ТАМ Ваш скоб будет работать.
Т.е. Вы мне предлагаете переписать реестр сводных заказов!?
(Я этого очень не хотел делать, поэтому, собственно и обратился на форум за помощью)
За время попыток решить эту проблему разобрался как работают QDOWN, QUP, хоть что-то полезное...
А вот проблема с "выпаданием" записи за скоб осталась!!!
Как изменить номер записи, к которой БЭСТ возвращается после выполнения плагина? Ни в приватных, ни в публичных переменных не нашел ничего... Да и, собственно, не особо надеялся...
Есил это он, туда аписывается результат исполнения. Как раз то, о чем я долбал тут довольно долго...
При возникновении ошибки туда нч не запис...
Описание массива есть в исходниках. WDOC тоже.
А разницы, наверное, никакой. Просто либо идет по индесу таблицы проверка, либо где-то (я не пытался выяснить) дополнительно храниться последний номер и тогда использование wdoc актуально...
При попытке сохранить документ с существующим номером должна быть ошибка в результирующем массиве, но он оказывается пустым!!!!
Я так делаю проверку:
Код
oErr:=oDocs:Run()
if (!Empty(oErr))
//сделать проверку....
if (oErr[1][1])
lResult:=.T.
else
lResult:=.F.
endif
else
lResult:=.F.
endif
отсюда тоже видно как с нм работать. А 2хмерный он потому, что в oDocs м\б несколько oDoc и первая размерность, как раз для номера документа в списке документов объекта oDocs, если мне не изменяет память.
К стати бОльшие проблемы и волнения у меня возникали по поводу того, что не возвращается код ошибки (кажется вообще никогда), я от nordik так и не смог добиться помощи, сделал проверку на наличие/отсутсвие ошибки (причина останется неизвестной), да и то, собственно косвено. Код где-то выше есть.
itman пишет:
Какая может быть другая структура? Авторизация, кстати мало помогает для ограничения доступа, все равно все ставят сохранение пароля, либо его знают все кто садится за комп.
Добавьте адрес машины в Unrestricted IPs и все.
Коннект будет без авторизации.
В следующих паках поправят, наверняка.
А если прокси будет SOCKS5? [Да и потом http-proxy тоже специфические запросы идут, свой протокол, так по идее работать не будет....]
Сомневаюсь, что в Б-5 будут делать реализацию прокси протоколов (в ближайших паках уж точно...)
Алексей Поздняков пишет:
Добрый День!!!
уважаемые сограждане
Подскажите пожалуйста
кто нибудь или у кого нибудь получилось запустить
БЭСТ5 3.х под Wine@Etersoft
запускаю под версиее вайна 1.0.9
БЭСТ устанавливается запускается
но проблема в том что ключ он не видит в упор
Причем в Wine@Etersoft встроена уже поддержка ключей
и сам вайн ключ видит на ура (запускается сервер ключей на порту 7001 и монитор на 7002)
в Техподдержку Wine@Etersoft отписался люди вроде как занимаются
может кто у нас на форуме уже решил эту проблему
или техслужба что подскажет как БЭСТ работает с ключом
С Уважением!!!
Алексей!!!
ИМХО 7001 порт совершенно здесь ни при чем.
Сервер БЭСТА по идее работает еще по какому-то другому интерфейсу (не сетевому) с ключем защиты....
Кроме того с ключем защиты ставиться драйвер ключа. Он что тоже встал нормально?
Есть такая необходимость сервер БЭСТ на линь ставить?
Да и потом, разве линь поддерживает виндовый browser протокол? Без него Б-5 точно работать не будет. (по сети)
Спасибо! Работает. Причем НДС и т.д. похоже сам считает. Осталось разобраться с нумерацией...
Для нумерации есть функция WDOC. Правда с ключем уникальности я толком не разобрался. Написал еще свою WDOC1 "для надежности", на боевой машине проблем не было. А потом как оказалось, что одинаковые номеру могут быть, просто вид документов д.б. разный, я был не в курсе. Лично по мне все равно как-то не удобно...
Вот тема:
WDOC-нумерация
Тот Самый пишет:
Здравствуйте!
Возможно ли запретить пользователям при формировании новой накладной использовать в поле Номер Документа любые символы кроме цифр без использования специальных функций?
Нет, такой настройки точно нет. Во всяком случае в СП12.
Может быть единственный вариант - это запрет ввода номера документа (там должно быть, хотя сейчас не помню) и БЕСТ автоматом его ставит, следующим по списку.
Так что, если у Вас эти документы из одного и того же меню программы создаются, то глюков с автонумерацией быть не должно...
Я делал документы оприходования ГП-товары. Исходя из Вашего кода по идее должно быть так:
Код
Local oDocs
Local oDoc1
oDocs := ScladDocs():New()
oDocs:Task := "03"
oDoc1:= ScladDoc():New()
oDocs:Hidden := 3
oDocs:Protokol := tempfile('c:\bests','txt')
oDoc1:Vid := "2"
oDoc1:Type := "1"
oDoc1:CodeDoc := "001"
oDoc1:NumDoc := "000018"
oDoc1:Sclad := "Центр."
oDoc1:Part_type := '1'
oDoc1:Part_Code := "000019"
oDoc1:AddRow("00003","0000000000002",,,10)
//заметьте тут нужно знать к какому элементу массива rows требуется обращение.
//Т.е. либо счетчик, либо по длине.
oDoc1:ROWS[1]:SumOutR:=5000//осн валюта
/* oDoc1:ROWS[1]:SumOut:=5000 - сумма во 2й валюте
Аналогично: oDoc1:ROWS[1]:SumFact, oDoc1:ROWS[1]:SUMOUT, oDoc1:ROWS[1]:SUM, oDoc1:ROWS[1]:SUMN - налог стоим.
Из последних свойств необходимо смотреть какие Вам нужны, а какие нет. Для этого нужно в документах Б-5 поковыряться и поэкспериментировать со свойствами.*/
oDocs:AddDoc(oDoc1)
oDocs:Run()
В любом случае нужно смотреть класс ScladRow. И "ставить опыты":)
Т.е. сделать проверку, получился ли правильно требуемый документ или нет.
Лично я не могу сказать определенно точно какие свойства за что отвечают. (Такие как TZR1MN...)
Там еще параметр по НДС есть, кажется этот:
data NDS init 0 // Значение параметра NDS товара...
Т.е. для кода, приведенного выше будет так:
А никто Вам не обещал что после плагина Вы останетесь на Вашей строке !!!
Все правильно БЭСТ пытается вернуться в состояние до старта плагина.
В БЭСТ-4 на Инитлист было событие "позиционирование"
В БЭСТ-5 я такого события не вижу
Так вот это очень !!!! Просто хуже некуда!!!
Если в Б-5 такого события нет, почему тогда происходит возврат именно на ту строку, на которой стоял "курсор" до плагина (я специально менял скоб, чтобы он охватывал измененную запись, так вот после окончания плагина "курсор" оказывается именно на этой записи!!!!!!!!)
Я в параметрах AddRow() не вижу возможности задать цену и/или сумму цены отпускной (CenaOut, SumOut). А они нужны!
Скорее всего там нет такого параметра.
Такой параметр есть в классе ScladRow, например, параметр SumFact - фактическая сумма товара... И через DATA ROWS (массив) класса ScladDoc можно получить доступ к цене конкретной строки документа...
Алексей Новиков пишет:
"Ковырять внутри форм" не соответствует парадигме программы, которая не задумывалась и не позиционируется как средство разработки. При добавлении точки вызова события требуется, чтобы в этой точке состояние системы было каким-то образом зафиксировано. Иначе, в перспективе, устанавливаемые обновления могут запросто разрушить логику работы плагина.
А спецфункции - это разве не ковыряние внутри форм...?
Обновления выходят и ничего...
Тем более событие "Вход в прайс-лист" собственно происходит внутри формы...
(А вот повесить событие по нажатию F4-добавление внутри создания заказа нельзя... Или по F8)
Я имел ввиду не изменение работы самой формы, а лишь "добавление доп точек разрыва" куда можно втиснуться...