Форум компании "ОМЕГА"
23 Июня 2017, Пятница, 03:05:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Запись проводок в алгоритме SBW  (Прочитано 18327 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Guest
Гость
« Ответ #8 : 05 Октября 2005, Среда, 10:54:38 »

Здравствуйте, Тарас. Если использовать ф-цию для проложения проводки ActRec, а не Action (я поняла, что ActRec Вы и использовали и без отображения подготовленных проводок), т.е.у Вас проводка будет прокладыватся сразу. Примерно это будет так: record ADD mode 14 HISTORY  (HIS:BACK_NOM_P=NOM_P4... заполняете все необходимые поля) end Tmp2=+HIS:NOMER (номер проводки, который используете для HISTNA)  record ADD mode 14 HISTNA(HNA:NOMER=Tmp2,HNA:OKATO=OKATO,HNA:ID_VED=Ved,HNA:KBK=KBK) end
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« Ответ #7 : 05 Октября 2005, Среда, 10:54:38 »

Здравствуйте Ирина, Так вот в этом самая и соль вопроса!!! Где взять номер проводки, чтобы занести его в переменную??? Пользователю он заранее не известен! Я предложил пару способов, которыми можно его найти, но у этих способов есть указанные недостатки. В моих СБД я ими пользуюсь, но при этом ЗП никто в этот момент не считает, и поэтому все работает. И недостатки алгоритмов то на самом деле теоритические - т.к. пакетное проложение проводок используется редко. А вот еслибы была функция, которая возвращала номер только что проложенной проводки ......
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« Ответ #6 : 05 Октября 2005, Среда, 10:54:38 »

Тарас, а Вы не пробовали сразу после добавления проводки в HISTORY с помощью ACT REC, занести номер проводки в переменную и дальше его использовать при добавлении записи в HISTNA? Как это будет работать при интенсивной работе в комплексе пользователей? Если Вы сможете попробовать, напишите пожалуйста, что получится.
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« Ответ #5 : 05 Октября 2005, Среда, 10:54:38 »

На практике алгоритм такой: 1.делаем запись в HISTORY. 2. Находим номер последней проводки в базе. 3.Используя этот номер делаем запись в HISTNA. (При этом допускаем, что последняя проводка в комплексе - наша только что проложенная). Главная проблема при этом правильно определить номер проводки которая еще не сохранена, т.к. комплекс эти номера генерирует автоматически. Как правило номер следующей проводки = номер последней +1. Поэтому вышеприведенный алгоритм работает, но если есть необходимость прокладывать проводки с дополнительной информацией в HISTNA при одновременном интенсивном добавлении проводок другими пользователями (на др. станции считают ЗП, расчитывают амортизацию и т.д.) этот способ может несработать. Тогда нужно усложнять алгоритм поиска своей только что проложенной проводки - искать по какой либо уникальной информации, которая известна заранее (контировка,сумма,кол-во и т.д.).
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« Ответ #4 : 05 Октября 2005, Среда, 10:54:38 »

Уважаемый Тарас! А не подскажете как увязать проложение проводок HISTORY.DAT с файлом HISTNA.DAT
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« Ответ #3 : 05 Октября 2005, Среда, 10:54:38 »

А вот в KEYHIST при этом способе ни в коем случае записи делать не нужно!!! При работе с HISTORY комплекс автоматически поддерживает соответствие в HISTORY, KEYHIST и др. файлах.Если же попытаться добавить или удалить запись в базе KEYHIST, то нарушится соответствие HISTORY и KEYHIST. Простейший пример: record ADD mode 4 HISTORY()   HIS:ISH_SCHET =1   HIS:ISH_SUBSCHET =1   HIS:REZ_SCHET =60   HIS:REZ_SUBSCHET =1   HIS:DATE =Дата   HIS:NOM_ORG =1   HIS:SUMMA =1000000   HIS:ZA_HTO ='Тестовая проводка' end В этом примере формируется проводка Д1/1-К60/1 на сумму в 1000000.
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« Ответ #2 : 05 Октября 2005, Среда, 10:54:38 »

И в KEYHIST тоже ведь надо писать? Какой-нибудь рабочий пример есть?
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« Ответ #1 : 05 Октября 2005, Среда, 10:54:38 »

Можно сохранять проводки до завершения алгоритма путем их записи напрямую в базу HISTORY используя ACT REC вместо ACTION. У этого способа есть свои плюсы и минусы. Плюсы - проводки прокладываются не как расчетные, а как обычные; процесс происходит быстрее; сохранить проводки можно в любой момент работы алгоритма. Минусы - проводки прокладываются не как расчетные и поэтому нет возможности удалить всю партию из Ведомости типовых действий.
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Guest
Гость
« : 05 Октября 2005, Среда, 10:54:38 »

Как сохранить проводки в дизайнере до завершения алгоритма? Галочка \Проложение подготовленных проводок\" ставлю и проводки сохраняются после выхода из алгоритма, что есть неправильно."
« Последнее редактирование: 01 Января 1970, Четверг, 03:00:00 от NULL » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.022 секунд. Запросов: 18.