![]() |
![]() |
sarknn 22.09.2004 - 10:23 | В 8-ке появилась такая возможность создавать в конфигурации предопределенные элементы справочника а вот если их много и они есть в виде например текстового файла можно их как нить загрузить в справочник ??? |
Дяпти 1 - 22.09.2004 - 10:27 | Загружаешь как непредопределенные потом меняешь пару столбцов в таблице, если SQL. |
Дяпти 2 - 22.09.2004 - 10:31 | +(1) Забудь, не взлетает. |
sarknn 3 - 22.09.2004 - 10:35 |
И у меня не взлетела :))) А как же быть механизм переопределенных реквизитов удобный но вкалачивать их большое количество руками в конфигураторе это пытка для программиста ... |
Дяпти 4 - 22.09.2004 - 10:37 | Дело в том, что предопределенные элементы находят свое отражение прям в конфе, а не только в таблицах. Если умеешь ковырять конфу не через конфигуратор - тогда возможно, иначе нет. |
Dymor 5 - 22.09.2004 - 10:39 | Предопределенные элементы справочника нужны только если надо из языка по имени на них ссылаться. Мне сложно представить ситуацию, когда нужно много таких элементов. Можно примерчик? |
Дяпти 6 - 22.09.2004 - 10:43 | (5) Возможно, что количество и состав элементов должны быть заранее определены. В v7 такое решалось путем обработки, заполняющей справочники в новой конфе при первом запуске. В v8 целесообразнее решать через предопределенные элементы. |
sarknn 7 - 22.09.2004 - 10:48 | Полностью согласен с Дяпти именно для этих целей есть всевозможные Классификаторы, Реестры норм, Отраслевые справочники и т.д. переопределенные элементы являються частью конфигурации и было бы очень удобно их загружать в нее как переопределенные элементы ... IMHO |
Dymor 8 - 22.09.2004 - 10:55 | (6,7) Не согласен. Собственно, программисты 1С тоже не согласны :))) - посмотрите любую типовую. Предопределенные элемены нужны, повторюсь, в единственном случае - если в конфигурации идет обращение к ним из встроенного языка. Можно разрешить пользователю менять любые свойства элемента, в т.ч. код и наименование,(хотя можно и запретить конечно) и при этом элемент для конфигурации будет однозначно определяться именем. |
Дяпти 9 - 22.09.2004 - 11:00 | (8) Смотрю УПП. Виды субконто - предопределенные элементы :-))) |
Dymor 10 - 22.09.2004 - 11:07 |
(9) Ну так я про что! Как идет обращение к видам субконто? Всегда что-то типа: "ПланыВидовХарактеристик.ВидыСубконто.Контрагенты" То есть по имени. |
Дяпти 11 - 22.09.2004 - 11:10 | (10) А также поискал по Ctrl+Shift+F в конфе слово "РапортРуководителю_ДенежныеСредства_ПриходПоСтатьям", которое является предопределенным элементом плана видов характеристик "ПраваПользователей" - ни фига не нашел :-))) А это как понимать? |
sarknn 12 - 22.09.2004 - 11:22 |
Дяпти ну че ты убеждаешь Dymora??? Бывают ситуации когда это необходимо и оправдано это очевидно например когда происходят незначительные изменения в отраслевых классификаторах гораздо проще их учесть при обновлении конфигурации чем файлом новой редакции + обработкой и т.д. Если ему нет в этом смысла можно рогом упираться ... оправдывать 1С вопрос ведь простой МОЖНО или НЕТ и нефига тратить время на разбор полетов НАДО НЕНАДО ... IMHO ... |
Дяпти 13 - 22.09.2004 - 11:29 | (12) Гыгы, да ясен пень :-))) И ваще мое глубокое имхо: каждый дp0чит как он хОчет. |
sarknn 14 - 22.09.2004 - 11:33 | Пока что вывод: НЕТ, поскольку в конфигураторе ни че подобного нет, а программно признак "Предопределенный" - только по чтению ... |
Vi0let 15 - 22.09.2004 - 12:19 |
пишеш прогу используя Win API (ну или скриптами) для эмуляции нажатий на клавиатуру открываешь окно заполнения предопроеделенных элементов ну а дальше - насколько фантазии хватит ценность этого совета зависит, канешна, от пропорционального соотношения выделки и овчинки |
gg 16 - 22.09.2004 - 12:47 | (13) прога ненужна достаточно vbscript + AppActivate + SendKeys или даже 1с + AppActivate + SendKeys |
sarknn 17 - 22.09.2004 - 12:52 | gg ... С этого места поподробнее :))) |
gg 18 - 22.09.2004 - 13:45 |
например открываем конфигуратор 8.0 открываем окно с вводом предопределенных элементов справочника. Создаем файл с расширением vbs пишем туда: Dim fso, MyFile set fso = CreateObject("Scripting.FileSystemObject") set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "1380" <-------- здесь PID процесса конфигуратора 8.0 можно в деспетчере задач посмотреть set MyFile = fso.OpenTextFile("c:\1.txt", 1) Do While MyFile.AtEndOfStream <> True r = MyFile.ReadLine WshShell.SendKeys("{INSERT}"+r+"{TAB}{TAB}"+r+"^~") Loop MyFile.Close создаем файл c:\1.txt записываем туда что то вроде item1 item2 item3 Выполняем vbs. Будут созданы предопределенные элементы с именами item1, item2, item3 и такими же наименованиями. |
sarknn 19 - 22.09.2004 - 15:00 | GG !!! Спасибушки все работает. Очень мне помог. |
snc 20 - 22.09.2004 - 16:50 |
Лучше все-таки классификаторы хранить в базе а не в конфе потому, что: 1) У предопределённых - только имя и код, других реквизитов нету. 2) Если идет обновление конфы и в одном элементе изменилось наименование, а пользователь поменял наименование, то после обновления оно не изменится. Соответственно обновление классификаторов по конфе здесь не прокатит, нужно писать обработки. 3) А если запрещать редактирование - это хлопотно, стандартных способов нет, и если ошибка какая, то надо выгонять всех из базы, или оставить права на редактирование админу, но опять же это все надо программировать. Вывод - самый лучший способ - обработки. Например, есть обработка по загрузке справочников из Excel'я. Чем она хуже? |