ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
Авторизация

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

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


Форум

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

Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 23 След.
Как экспортировать справочник банков из СЭДа
 
Как вы делали? Обновление через интернет? Или сначала скачали файл и потом обновление через файл?

Можно сделать несколько иначе, но уже с плагинами.
Сейчас у вас есть справочник банков, в котором могут быть и двойные записи, и неиспользуемые и ошибочные. Это так?
Если так, то почитайте эту тему.
С уважением,
Ильин Евгений
Как экспортировать справочник банков из СЭДа
 
У Вас в БЭСТе банки откуда берутся? Вы их заносите руками?
Из пояснительной записки к 19 пакету:
Цитата
1. В справочнике банка, кроме импорта данных напрямую через Интернет, предоставлена возможность импорта справочника из файла, соответствующего структуре справочника банка сайта www.pvision.ru. В этом случае импорт осуществляется с помощью пунктов меню "Синхронизация из файла"/"Синхронизация из файла с добавлением" кнопки "Загрузка". При выборе этих пунктов меню предлагается указать путь к файлу *.zip. Правила синхронизации те же, что и через Интернет.


Используете ли вы эту возможность?
Попробуйте, и у вас появится справочник банков такой же как в СЭД и никакой UPPER() не нужен, т.к. там все записи заглавными.
С уважением,
Ильин Евгений
Как экспортировать справочник банков из СЭДа
 
Подозреваю, что форматы не совпадут. А чем не устраивает стандартный справочник?
И СЭД и БЭСТ берут сведения из одного источника.
Если не устраивает шрифт, можно взять bnkseek.dbf, сделать UPPER() и принять справочник в БЭСТе из файла.
Либо из mdb делать структуру bnkseek.dbf:
Цитата
Nr. Field Name Type Len Dec
==== ========== ========= ===== =====
1 VKEY Character 8 0
2 REAL Character 4 0
3 PZN Character 2 0
4 UER Character 1 0
5 RGN Character 2 0
6 IND Character 6 0
7 TNP Character 1 0
8 NNP Character 25 0
9 ADR Character 30 0
10 RKC Character 9 0
11 NAMEP Character 45 0
12 NAMEN Character 30 0
13 NEWNUM Character 9 0
14 NEWKS Character 9 0
15 PERMFO Character 6 0
16 SROK Character 2 0
17 AT1 Character 7 0
18 AT2 Character 7 0
19 TELEF Character 25 0
20 REGN Character 9 0
21 OKPO Character 8 0
22 DT_IZM Date 8 0
23 CKS Character 6 0
24 KSNP Character 20 0
25 DATE_IN Date 8 0
26 DATE_CH Date 8 0
27 VKEYDEL Character 8 0

Если не устраивает стандартный импорт справочника банков, можно взять плагин и доработать его под свои нужды, в нем попутно делая UPPER() на нужных полях. Плагины есть на форуме.
С уважением,
Ильин Евгений
Типовые операции
 
Стр 7.19 Счета в банках...
Цитата
• Корреспондирующий счет – выбирают с помощью справочника типовых операций (F3), проставляют вручную или выбирают из плана счетов (F2). Если на данном счете открыт аналитический учет, запрашивается шифр аналитики. Пользователь вводит код самостоятельно или обращается к справочнику аналитических счетов. При необходимости, справочник аналитических счетов может быть оперативно дополнен. При вводе нового аналитического кода можно воспользоваться дополнительным справочником, если тип этого справочника был указан при описании корреспондирующего счета в плане счетов в приложении Бухгалтерский учет.

Когда курсор перемещается по полям, обращайте Внимание на появляющиеся подсказки внизу.
С уважением,
Ильин Евгений
Подозрительный файлик sx32w.dll
 
ОК
Dr.WEB признал в нем trojan.packed.198, возможно из-за обилия url в библиотеке.
С уважением,
Ильин Евгений
Программирование в БЭСТ 5, Связь между системным сегментом и файлом dbf
 
Каждый последующий расчет проходит на минуты дольше за счет того, что предыдущие записи помечаются но не удаляются.
Удаление должно произойти при переиндексации. Я так думаю, в рабочем режиме редко могут встретиться ситуации когда банк данных требует пересчета по несколько раз за день.
Так что достаточно обнулить упомянутые базы один раз на 21 пакете и затем только делать ночную индексацию, и тогда будет ОК.
Может быть даже будет целесообразно включить процедуру очистки в установку 22 пакета.
С уважением,
Ильин Евгений
Подозрительный файлик sx32w.dll
 
Антивирус дал сообщение о подозрении на троян в файле sx32w.dll.
Размер файла в каталоге БЭСТа - 3 552 576
Размер файла в каталоге system32 - 100 864

Так и должно быть?
С уважением,
Ильин Евгений
Программирование в БЭСТ 5, Связь между системным сегментом и файлом dbf
 
Кстати, да.
На пустых таблицах пересчет банка идет нааааамного быстрее ( 8 минут за полтора года на 21 пакете, и полдня на предыдущем).
С уважением,
Ильин Евгений
последовательность создания типовой операции
 
В какой программе, в каком модуле, для какого документа?
С уважением,
Ильин Евгений
Разработчикам(Структурные подразделения)
 
Мое мнение - права должен назначать администратор, а по умолчанию доступа быть не должно, иначе какой смысл в этих ограничениях. Дать доступ можно всегда, а вот исправлять ошибки после случайно данного доступа - может выйти дороже.
На программе работают различные предприятия, и есть случаи. когда расчет зарплаты делится между расчетчиками по подразделениям. В таких случаях, доступ на все по умолчанию, может выйти боком.
С уважением,
Ильин Евгений
Разработчикам(Структурные подразделения)
 
А зачем? Это же не ежедневная операция.
Просто установите регламент для создания нового подразделения.
Там дел всего на несколько минут.
С уважением,
Ильин Евгений
Программирование в БЭСТ 5, Связь между системным сегментом и файлом dbf
 
При количестве проводок 80 000 пересчет банка данных на сервере у меня занимает часа 3.
С уважением,
Ильин Евгений
Изменение в проводках.
 
Цитата
После менеджер по своим каким-то мотивам или интересам вносит изменения в эту реализацию - получается отгружено одно, а документы на другое. В результате при проведении инвентаризации или отгрузки "под ноль" всплывает несоответствие или пересорт и т.д.

В подобной ситуации, как оказалось присутствовал преступный умысел. После чего, кстати и родился плагин для 4+ "Логер на сохранение", регистрирующий изменения в документах.
Достаточно раза два задать человеку Вопрос, сразу после внесения изменений - и у оператора пропадет желание заниматься подобными деяниями.
С уважением,
Ильин Евгений
Структура main.dbf, БЭСТ5
 
Александр, чтобы вам помочь быстро и правильно - надо понять задачу с которой вы работаете.
Не исключено, что выбранный вами путь - не верен, и вы зря тратите время, усложняя себе задачу.
Мини-ТЗ в таких случаях - обязательная вещь.
К тому же вы затрагиваете самое святое - main.dbf, кому придется за последствия отвечать?

Судя по Вопросу, можно понять что вы пытаетесь сформировать пакет проводок на основании данных по счетам.
Почему харбор а не групповые операции?
Что ответил на вашу проблему Региональный представитель?
С уважением,
Ильин Евгений
Структура main.dbf, БЭСТ5
 
Цитата
nordk пишет:
val_id - Гуид Валюты, если Вы зполняетет сами то он обязателен разумеется !!!

Иначе проводка не будет знать по какой валюте она живет, последствия думаю не изучал никто.

Проводка пойдет мимо в результатах, то есть как бы будет, но в отчетах как бы и нет.
С уважением,
Ильин Евгений
Плагин в виде исполняемого файла, Компиляция prg файла в исполняемый файл
 
"Заточенный" для БЭСТа уже лежит в инструментарии.
Создаешь новый каталог, создаешь программный файл, вносишь изменения в батник, собираешь и получишь экзешник. Это если вкратце, а если надо подробнее, то пройди сначала сам и где непонятно - дай знать.
С уважением,
Ильин Евгений
Плагин в виде исполняемого файла, Компиляция prg файла в исполняемый файл
 
Если есть необходиость запускать "плагин" как отдельную программу с возможностью диалога с пользователем, то это уже не плагин будет а программа. Для этих случаев и служит инструментарий.
А если плагин требуется для выполнения каких то задач по обработке данных без участия пользователя, то для этого достаточно собрать файлик по примеру prg_test.
По переводу кода для таких задач много вопросов возникнуть не должно.
Много используется функций разработчика для работы с данными? Не думаю.
Use, set order, do while, и т.п. вроде более менее стандартный ряд системных функций.
dbpush() dbpop() в этом случае не нужны.
В каталоге PLL можно подсмотреть исходные коды функций разработчика.
С уважением,
Ильин Евгений
Плагин в виде исполняемого файла, Компиляция prg файла в исполняемый файл
 
Ну для такой задачи можно использовать стандартные функции Харбора.
Надо просто просмотреть код на предмет используемых функций.
С уважением,
Ильин Евгений
Плагин в виде исполняемого файла, Компиляция prg файла в исполняемый файл
 
Для какого БЭСТа задача?
С уважением,
Ильин Евгений
Плагин в виде исполняемого файла, Компиляция prg файла в исполняемый файл
 
Каталог prg_test.
Тестовый пример

function Func1(lMod)
alert("Тест")
return nil

работает?

В консольном приложении не поддерживаются функции разработчика.
Какая задача? Обработка данных или приложение с интерфейсом?
Если второе - то проще строить на базе функций БЭСТа.
С уважением,
Ильин Евгений
БЭСТ-5 ... ЮМОР!!!, ЮМОР!!!
 
С Баша:
Цитата

Бухгалтер в телефон
- Вчера к нам приезжал ваш специалист, обновлять 1С. Вот вы только что мне по факсу прислали счёт-фактуру по оплате за его услуги. Обновление 1С состояло в том, что изменилась форма счёт-фактуры, а вы мне присылаете счёт-фактуру по старой форме. Пришлите по новой, пожалуйста.
С уважением,
Ильин Евгений
Ведение номенклатурного справочника с ОКЕИ, как сделать контроль из документа?
 
Итак, на данный момент в системе отсутствует связь с ОКЕИ. До поры до времени проблем не возникало, если по умолчанию в группе забита единица измерения. Но в последнее время, то ли в документах поставщика идет некорректная информация, то ли оператор - творческая натура, но на складе можно встретить все что угодно и бухты и пачки и емкости.
Для работы в номенклатурном справочнике нарисовал плагин, который при сохранении проверяет единицу измерения по выборке из ОКЕИ. Какое событие, или каким образом можно осуществлять контроль при вводе новой позиции из накладной?
Модуль - Сырье. Материалы
Код
usr_edizm()

  Function usr_edizm()
    Local cMsgEdIzm,nStep:=1,nEdIzm,lRet:=.T.//Строка сообщения,счетчик,количество строк перечня,возврат
    Local aEdIzm := {;//Массив {код,Наименование, Нац.обозначение, КОДОВОЕ обозначение}
          {"868","Бутылка","бут",  "БУТ"},;
          {"055","Квадратный метр ","м2",   "М2"},;
          {"166","Килограмм","кг",   "КГ"},;
          {"839","Комплект","компл","КОМПЛ"},;
          {"113","Кубический метр","м3",   "М3"},;
          {"625","Лист","л.",   "ЛИСТ"},;
          {"112","Литр","л.",   "Л"},;
          {"006","Метр","м",    "М"},;
          {"715","Пара (2 шт.)","пар",  "ПАР"},;
          {"018","Погонный метр","пог.м","ПОГ М"},;
          {"736","Рулон","рул",  "РУЛ"},;
          {"168","Тонна","т",    "Т"},;
          {"798","Тысяча штук","тыс.шт","ТЫСШТ"},;
          {"778","Упаковка","упак", "УПАК"},;
          {"796","Штука","шт",   "ШТ"};
          }
    dbpush()// в астрал
    AltD()
    //Готовим сообщение пользователю
    cMsgEdIzm:="Внимание!"+Chr(13)+Chr(10)+"Единицы измерения должны соответствовать ОКЕИ :"+Chr(13)+Chr(10)
    nEdIzm:=Len(aEdIzm) // подсчитываем строки в массиве
    Do While nStep <= nEdIzm   // Перебор по справочнику единиц измерения
      // Наполняем строку сообщения (КОД - Наименование)
      cMsgEdIzm:=cMsgEdIzm+aEdizm[nStep,4]+"  -  "+aEdizm[nStep,2]+Chr(13)+Chr(10)
      nStep:=nStep+1
    EndDo
    //Если значение поля пустое
    If Len(AllTrim(mlabel->ed))=0
      //Делаем намек
      cMsgEdIzm:=cMsgEdIzm+"Необходимо заполнить поле | Ед.Измер... | !"
      lret:=.f. // Оставляем в карточке до поиска нужного решения
      //Оповещаем
      messagebox(cMsgEdIzm,"Внимание! Пустое значение...",48)
    ElseIf  AScan(aEdIzm,AllTrim(mlabel->ed))=0
      //Оглашаем приговор
      cMsgEdIzm:=cMsgEdIzm+"Значение поля  <"+AllTrim(mlabel->ed)+">  будет удалено !"+Chr(13)+Chr(10)
      //Доводим до сведения
      messagebox(cMsgEdIzm,"Внимание! Ошибочный код Ед.измер.",16)
      //Делаем мелкую пакость
      mlabel->(RLock())
      mlabel->ed:=""
      mlabel->(DbUnLock())
      lret:=.f. // Не выпускать
    EndIf
    // для уверенности пробиваем в верхний регистр, то что прошло через ascan
    mlabel->(RLock())
    mlabel->ed:=Upper(mlabel->ed)
    mlabel->(DbUnLock())
    dbpop()//вернулись
    Return lRet

С уважением,
Ильин Евгений
Потеряла excel.ch, Где можно быстро найти
 
Код
#define xlEdgeLeft     7
#define xlEdgeTop      8
#define xlEdgeBottom   9
#define xlEdgeRight    10
#define xlContinuous   1
#define xlThin  2
#define xlAutomatic    -4105
#define xlCenter    -4108
#define xlLeft      -4131
#define xlDown  -4121 
#define xlTop  -4160
#define xlSolid  1
#define xlSum     -4157
#define xlCount   -4112 
#define xlUnknown  1000
#define xlAbove 0
#define xlBelow 1
#define xlToRight  -4161
#define xlDown     -4121
#define xlCalculationAutomatic -4105
#define xlCalculationManual -4135
#define xlHidden      0
#define xlRowField    1
#define xlColumnField 2
#define xlPageField   3
#define xlDataField   4
#define xlCountryCode  1
#define xlListSeparator  5
#define xlDecimalSeparator 3
#define xlDatabase 1
#define xlPie 5
#define xlColumnClustered 51
#define xlColumns 2
#define xlLocationAsNewSheet 1
#define xlNone -4142 
#define xlPrimary 1
#define xlCategory 1
#define xlValue 2
#define xlSeriesAxis 3
#define xlCategoryScale 2
#define xlDataLabelsShowLabelAndPercent 5
#define xlUp  -4162
#define xlPortrait 1
#define xlLandscape 2
#define xlPageBreakManual  -4135
#define msoBarTypeNormal 0
#define wdOrientPortrait  0
#define wdOrientLandscape 1
#define wdScreen 7
#define wdWindow 11
#define wdStory 6
#define wdSeekCurrentPageHeader 9
#define wdSeekMainDocument 0
#define wdPaneNone   0
#define wdPrintView  3
#define wdNormalView 1
#define wdReplaceAll 2
#define wdFindContinue 1
#define wdLineBreak 6
#define wdPageBreak 7
С уважением,
Ильин Евгений
Использование переменных nNumber и nKOLSTROK в HFILEEVAL
 
Нет Кость, это не срочно.
Просто спроецировал подобную задачу на серые окна.
Подобные Вопросы могут возникнуть при активном использовании плагинов в графическом режиме.
С уважением,
Ильин Евгений
Использование переменных nNumber и nKOLSTROK в HFILEEVAL
 
Реестр графической формы.
Отмечаем несколько записей для обработки, каким образом плагину дать понять где первая запись и сколько всего отмечено?
В этом режиме есть переменная oFrmReeGrForPlugins
я могу вывести номер записи:
Код
memvar oFrmReeGrForPlugins
local o,nrecno
o := oFrmReeGrForPlugins
nRecNo := o:dsreestr:bo:recno()
messagebox(str(nRecNo))

А как взять количество отмеченных строк и номер обрабатываемой строки, вот что интересует.
С уважением,
Ильин Евгений
Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 23 След.