Есть задача, создать в базе main.dbf дополнительное поле с уникальным значением.
Делаю следующее, создаю это поле, далее, полазив по форуму, понимаю что надо делать пользовательскую функцию и вешать ее на книгу учета хоз. операций по событию "запись документа" (ctrl+f5). Вот тут я и застрял. Делаю первую свою программу, типа alert("test!") все там прописываю как надо, делаю ее по событию "по требованию" работает, делаю по событию "запись документа" не работает. почему? или я вообще координально не правильно подошел к решению а?
а второй , как это можно реализовать в программе. как уникальный индекс получить, я уже вычитал. но вот как занести в новое поле при сохранении проводки, пока не нашел ответа.
помогите или направьте меня на нужную литературу.
Попробовал это проделать на накладных - работает... Это что получается, что событие "запись документа" в проводках не возникает? а зачем тогда бест разрешает его выбирать в пользовательских программах? и как тогда можно генерить уникальный код в дополнительно созданном поле проводки?
По-хорошему, в книге операций вообще следует запретить какой либо ввод проводок.
Все следует делать через документы, если нет подходящих, есть свободные в АРМе главбуха.
Какая именно версия БЭСТа? Какая задача?
Судя по тексту, версия 4+.
Проводки имеют свой уникальный код в поле nnoper, его заполнение обязательно.
Файл main.dbf - ключевой для бухучета, поэтому к прямому формированию данных в нем стоит подойти со всей серьезностью.
Здесь можно скачать справочник по 4+, там можно найти ответы на многие ы.
И можно узнать задачу?
admin_omega пишет:
Попробовал это проделать на накладных - работает... Это что получается, что событие "запись документа" в проводках не возникает? а зачем тогда бест разрешает его выбирать в пользовательских программах? и как тогда можно генерить уникальный код в дополнительно созданном поле проводки?
Вообще конечно это не правильный подход прямо в проводках, но давайте начнем разговор с того: какой БЭСТ,какая версия и так далее.
Что касается записи в свои поля и контроль - то за это отвечает блок кода bPost
nordk пишет:
Событие на запись документаКакой документ Вы записываете при вводе руками в реестр проводок ?
А какие документы имеются ввиду при вводе нового плагина в реестре проводок?
Сейчас бы от admin_omega услышать его задачу. У меня зимой возникала посадить плагин на запись и изменение проводки в реестре проводок, но в итоге отказался от этого и не стал писать про то, что плагин не запускается.
Спасибо что не прошли тему стороной. Я вчера полночи развлекался с этой задачей и в итоге отказался от нее, т.е. придумал решение как можно обойтись без колонки с уникальными значениями. Как показали мои многочисленные эксперименты и информация найденная в интернете, то средствами БЕСТ-а, создать такую колонку с уникальными значениями у меня не получиться, а очень жаль :(. Для чего это все нужно, у меня есть серьезная надстройка над бестом, т.е. управленческая программа, она умеет работать с проводками, какие именно действия она с ними совершает рассказывать я не вижу смысла, но для того что-бы она могла четко идентифицировать проводку, у нее должен быть уникальный код. Поля в проводках, типа nnoper не подходят, они не уникальные. Попытка привязаться к номеру записи в dbf тоже не подходит, т.к. после упаковки файла позиция у проводок может измениться. вот так.
Теперь осталось попробывать задумку, а она выглядит в следующим образом, вешается хук на обращение к файлу main.dbf, и дописывается нужная информация, о как... пока еще не протестировал, в понедельник займусь этим ;)
admin_omega пишет:
Спасибо что не прошли тему стороной. Я вчера полночи развлекался с этой задачей и в итоге отказался от нее, т.е. придумал решение как можно обойтись без колонки с уникальными значениями. Как показали мои многочисленные эксперименты и информация найденная в интернете, то средствами БЕСТ-а, создать такую колонку с уникальными значениями у меня не получиться, а очень жаль :(. Для чего это все нужно, у меня есть серьезная надстройка над бестом, т.е. управленческая программа, она умеет работать с проводками, какие именно действия она с ними совершает рассказывать я не вижу смысла, но для того что-бы она могла четко идентифицировать проводку, у нее должен быть уникальный код. Поля в проводках, типа nnoper не подходят, они не уникальные. Попытка привязаться к номеру записи в dbf тоже не подходит, т.к. после упаковки файла позиция у проводок может измениться. вот так.
Теперь осталось попробывать задумку, а она выглядит в следующим образом, вешается хук на обращение к файлу main.dbf, и дописывается нужная информация, о как... пока еще не протестировал, в понедельник займусь этим ;)
Добрый день!
Это о каком БЭСТе речь?
В БЭСТ-5 3.4 в каждой таблице есть уникальный 22-символьный идентификатор.
Алексей Новиков пишет:
Возможно что решён. Но решён не принципиально, а до определённого (конкретного) уровня детализации.
на уровне плана счетов БЭСТа можно сделать достаточно глубокую детализацию.... насколько она нужна из зарплаты на практике для управленческого учета.
Разумеется, более мощный аналитический учет это БЭСТ-5.
И тем более Бюджетирование это как раз те самые механизмы которые изобретают к БЭСТ-4...
Переход на БЭСТ-5 может оказаться более принципиальным.
Да, затрагивает БЕСТ-4. На БЕСТ-5 наше "правительство" переходить пока не хочет :( вот и приходится изобретать велосипед. По поводу составных полей уже игрался никак не получается, всегда найдется дубляж. Поэтому это только колонка с уникальным значением. Как я уже говорил выше, мне необходимо получить доступ не к группе проводок, а к конкретной проводке и привязать ее этим уникальным индексом к нашим управленческим задачам.
admin_omega пишет:
Да, затрагивает БЕСТ-4. На БЕСТ-5 наше "правительство" переходить пока не хочет :( вот и приходится изобретать велосипед. По поводу составных полей уже игрался никак не получается, всегда найдется дубляж. Поэтому это только колонка с уникальным значением. Как я уже говорил выше, мне необходимо получить доступ не к группе проводок, а к конкретной проводке и привязать ее этим уникальным индексом к нашим управленческим задачам.
Для управленческого учета БЭСТ-5 весьма удобен. Найдите время, проведите презентацию для Руководства по БЭСТ-5 на базе демоверсии. Сейчас сентябрь, оптимальное время для начала работ по переходу.
И по поводу поля с уникальным значением. Почему не получится создать?
Не обязательно использовать алгоритмы Б4, можно например генерировать значение на основе времени, уникальность обеспечена.
itman пишет:
Найдите время, проведите презентацию для Руководства по БЭСТ-5 на базе демоверсии. Сейчас сентябрь, оптимальное время для начала работ по переходу.
Не хотят, уже показывал... нос воротят, привыкли к dos форточкам и все тут...
Цитата
itman пишет:
Не обязательно использовать алгоритмы Б4, можно например генерировать значение на основе времени, уникальность обеспечена.
так... мысль, а поподробней можно? а то дата, это конечно , но ведь как-то надо и еще что то подцеплять, думал даже о том, что название проводки кодировать, но это тоже не совсем уникальность, т.к. на одну дату может быть несколько одинаковых проводок и даже с одинаковой цифрой, т.е. суммой... уже проверил, благо база с 2004 года, есть на чем потренироваться.
Сразу оговорюсь, закрытие периода не предлагайте, он закрыт, но надстройка работает с полной базой, т.е. с момента ее создания, это нужно для аналитик разнообразных.
По уникальности времени, на практике не проверял.
Но если сделать формат времени hh:mm:ss.cc
Наверняка для одной базы будет логично предположить что с одинаковыми долями секунд записей быть не должно.
itman пишет:
По уникальности времени, на практике не проверял.
Но если сделать формат времени hh:mm:ss.cc
Наверняка для одной базы будет логично предположить что с одинаковыми долями секунд записей быть не должно.
хорошая, но как заставить-то его прописывать в дополнительной колонке время, когда я не могу прицепиться к БЕСТ-у, чтобы он при сохранении проводки, причем все-равно из какого места, писал это значение в поле? об этом-то и идет речь в данном посте, что это невозможно стандартными средствами БЕСТ-а... поэтому пока в процессе поиска данного решения.