#0
by Leyla
Здравствуйте! Нужно получить список колонок многострочной части формы списка справочника. Как это можно сделать?
#2
by Leyla
Да... Либо никто не знает, либо - это невозможно... Если это невозможно, то это очень грустно
#3
by Dr Gl00m
Как я понял тебе это нужно программно. Обрисуй ситуацию, может можно без этого обойтись?
#4
by Виталий Августейший
Штатно - только те, которые являются реквизитами справочника в попытке получитьАтрибут. Если все - то formex.
#7
by Leyla
Да, программно. Хочу дать полльзователю управлять видимостью колонок в формах списков справочников. Нашла, как это делается в Типовой конфигурации "1С:Бухгалтерия" для справочника Контрагенты, но добавлять колонки для каждого справочника "вручную" долго, и если что-то вдруг изменится - придется менять код. Вот и хотелось получить список колонок программно.
#10
by Leyla
Программирую на 1С второй месяц, уже столкнулась с невозможностью реализовать такие элементарные вещи... грустно... Реквизиты справочника-то я достану через метаданные, но ведь колонки бывают и вычисляемые. Formex почему-то не хочется подгружать, цель не оправдывает средства.
#11
by Славко
тогда просто: Видимость(<?>) Синтаксис: Видимость(<Режим>) Назначение: Установка режима отображения элемента диалога. Возвращает: текущее числовое значение режима отображения элемента диалога (на момент до исполнения метода). Параметры: <Режим> - число: 1 - поле диалога отображается, 0 - поле диалога скрыто. Замечание: Доступ к методу возможен только в контексте Модуля формы через атрибут Форма. Использование данного метода для колонки табличной части формы не может изменять видимость отдельно для совмещенных и многострочных колонок.
#12
by Виталий Августейший
10. Если ты скромная прелестная девушка, то можешь скинуть мне свой 1сv7.md - я бы тебе сделал.
#13
by Славко
Мадам, научитесь пользоваться СП, или если СП мало, то СП+ЖКК, и можете мне поверить, Вам будет не так грустно... ЗЫ я первые 2 года программил тока по СП...
#15
by Leyla
Спасибо большое за ваше благородное предложение, но очень хочется сделать самой, а вы мне только подскажите!
#18
by Leyla
Я его не подключала, просто искала в интернете информацию по своей проблеме и прочитала про FormEx.
#21
by Leyla
Благодарю: ЖКК 4 шт. всегда у меня на столе, кроме этого диски ИТС, а уж без СП вообще никуда :)
#22
by Leyla
Понятно, но FormEx, почему-то, не хочется. Буду брать реквизиты, а вычисляемые, так уж и быть, придется дописывать вручную.
#24
by Виталий Августейший
22. В вычисляемые можно вставить функции, которые будут индентифицировать их как видимые.
#28
by Славко
так что Вам еще нужно подсказать? ведь уже явно указал на метод, который Вам нада использовать для решения Вашей задачи...
#30
by Leyla
Проблема не в том, чтоб колонке установить видимость, а в том, чтоб программным способом получить список идентификаторов этих самых колонок.
#34
by GrayT
Я не видел твоего ответа на 0. Могу только сказать, что можно получить и список вычисляемых и без ФормЕх, но боюсь что это Leylу тоже не устроит
#46
by GrayT
43. А вообще если нет желания постоянно менять конфу, то можно загнать все колонки в файл (тхт, хмл - по вкусу) и от тудова уже брать. Если конечно Виталий Августейший ни чего хорошего не предложит
#48
by Славко
в не правильный ответ, кроме того Вы понимаете разницу между реквизитом объекта и реквизитом формы? на этом форуме я не высказывался вроде по принтерам, или Матрена у тя тут Ник совсем мне неизвестный? :))))) по большому счету без ВК или без юзанья ActiveX тут не обойтись... я имею про задачу вцелом...
#50
by GrayT
ActiveMD - OLE сервер, позволяет работать с конфигурацией из Предприятия. В данном случае можно получить текст диалога и вытащить названия из секции Multicolumn
#53
by Виталий Августейший
51. Сегодня, просто мне нужно время проверить код, а я сейчас занят работой.
#54
by Leyla
Надеюсь, что понимаю. Но нигде не прозвучало, как может ВК (это вычисляемая колонка, если я правильно понимаю) помочь? Озвучьте, пожалуйста.
#56
by Славко
ВК - это внешняя компонента, например тот же формекс... а получть атрибут - это метод не только для реквизитов объектов... если полностью все автоматом, т.е. программно, то без ВК или без юзанья ActiveX тут не обойтись
#58
by Leyla
Объект "РасширениеФормы" - формэксовский? Т.е. без подключения Formex им воспользоваться, похоже, нельзя?
#59
by Виталий Август Матре
56. Ну почему же? Даже если известна строка с идентификаторами вычисляемых колонок - то уже можно программно без ВК.
#65
by Crew
Способы конечно корявые :) + полуавтоматом ;) Может Виталик или монстры 1С ченить умное подскажут. Ногами не бить. 1) Сделать название расчетных колонок однотипными (РК1,РК2,РК3) Управлять видимостью через Попытку/Исключение 2) Добавить реквизиты в форму с определ. однотипными именами. А в синонимах проставить имена расчетных колонок. 3)Прописать в синониме справочника имена расчетных колонок через разделители. Можно подумать что пост это я написал.
#66
by Leyla
Способы мне нравятся, несмотря на их "полуавтоматичность", и главное - никаких лишних dll! :)
#67
by Diter
Нет прости, но помоему ошибаешься ты. Ну получишь ты текст формы моделя, ну найдёшь та реквизит ТЧ (узнаешь его имя методом тыка установи признаки вычесляемых колонок). Дальше то что? Как видимостью управлять планируешь? При таком раскладе можно и GComp`ом воспользоваться. Тот же эффект.
#68
by GrayT
Текст диалога, получу наименование реквизитов. Дальше уже ясно. С ФормЕх-ом проще однозначно, но это ВК
#70
by GrayT
Не разочаровывай меня 1. Из дока по АстивМД "ActiveMD - представляет собой OLE Automation сервер для доступа к файлу метаданных (MD файлу) 1С Предприятия 7.7. ActiveMD не является внешней компонентой в понимании 1С Предприятия и с ним можно работать из любого языка программирования, поддерживающего OLE Automation в т.ч. и из самого 1С'а. " 2 Форма.ПолучитьАтрибут(НаименРеквФормы).Видимость
#71
by Diter
Может конечно я и не силён в терминологии, но в моём понимании, ВК это всё, что "пристёгивается" извне к 1С. За способ программно управлять реквизитами формы, не зная заранее их наименования - респект :)
#72
by GrayT
Я тоже не силен - руки не доходят :) Но при правильном понимании терменологии может открыться и понимание технологий.
#73
by Diter
Вот выдержка из als по ActiveMD "Copyright (C) 2001 by Павел Бычковяк: Active MD представляет собой in-proc ActiveX сервер и предназначен для доступа к метаданным 1С Предприятия 7.7." Заметь не ОЛЕ а ActiveX
#75
by Виталий Августейший
Процедура управлениеВидимостью - формула кнопки. Можно было сделать и без WScript...
#76
by Виталий Августейший
Забыл дописать, что это я написал не ради Crew и GrayT, а ради прекрассной леди Лейлы, четвертой дамы моего сердца.
#78
by Виталий Августейший
77. У меня есть мысли по этому поводу, но пока нет времени проверить. Постараюсь не забыть завтра эту тему и выложить универсальный код без WScript.
#81
by Leyla
Попробовала - работает, только почему-то процесс сканирования колонок работает бесконечно. На свой страх и риск решила немножко изменить процедуру СканироватьКолонки, вот, что получилось: Т.е. убрала рекурсию (все равно обработка ожидания запускает СканированиеКолонок периодически), убрала первую строчку Форма.ОбработкаОжидания(,); (может, я чего-то не понимаю - зачем она?) Добавила Форма.ОбработкаОжидания("",); - заканчивает периодический вызов процедуры СканированиеКолонок, когда все колонки добавлены. Может, я не учла каких-то нюансов?
#84
by Можно просто Виталий
Милая Лейла, Обработка ожидания в первоначальном варианте вызвала процедуру сканирования и при активизации этой процедуры прекратила свое действие. В твоем варианте - обработка ожиданя продолжает работать, то есть раз в секунду пытается заново вызвать процедуру сканирования.
#85
by Виталий Августейший
Никто не хочет посоревноваться за лучшее написание по теме сабжа без использования ВК и WScript?
#86
by Leyla
Виталий (хорошо, что можно просто :), а у меня ваш вариант работает бесконечно. Что его должно было остановить: эта команда - Форма.ОбработкаОжидания(,); ? И еще вопрос - зачем рекурсия в процедуре сканироватьКолонки? Может быть, или рекурсия или обработкаОжидания. А может, оставить только рекурсию и убрать ОбработкуОжидания - все равно она вызывается при открытии формы - там и вызвать первоначально сканироватьКолонки? Что-то я запуталась! Распутывайте!
#87
by Виталий Августейший
Лейла, рекурсия вызывает всего лишь перемещение курсора вправо и получение идентификатора колонки списка. Если идентификатор уже был просканирован - тогда "возврат", то есть прекращение процедуры. А обработка ожидания в рекурсии работает только один раз - при первом вызове отменяет обработку ожидания сканирования каталога. Последующие вызовы с пустыми параметрами обработки ожидания ничего не делают. Конечно, приведенный в 84 пример далеко не изящен, был сделан наспех. Потому, исключительно ради Вас, я и предложил 85.
#88
by Leyla
Мне и с использованием WScript'а очень нравится ваша идея, Виталий. Не уверена, найдутся ли желающие посоперничать с вами :)
#89
by Leyla
И все-таки, Виталий, я поэкспериментировала с процедурой СканироватьКолонки, команда Форма.ОбработкаОжидания(,) не отменяет периодический вызов сканирования колонок, и получается, что все работает как раз за счет того, что процедура ОбработкаОжидания продолжает работать. Если же ее действительно остановить, то колонки не просканируются, т.к. в рекурсии всегда будет текущей одна и та же колонка, не смотря на то, что вызывается Скрипт.SendKeys("{RIGHT}"); Похоже, что следующая колонка не устанавливается, пока процедура СканироватьКолонки не отработает до конца (в.т.ч. и ее вложенные рекурсивные вызовы), поэтому здесь рекурсивный вызов можно просто убрать и работать будет так же.
#90
by Виталий Август
89. Я не знаю Лейла, я не программист. Я 1с практически не юзаю - для этого есть подчиненные. Моя обязанность - просто управлять людьми, ситуациями.
#91
by Leyla
Виталий, Вам хочу сказать особенное большое спасибо - идея действительно великолепная, я сама бы до такого точно не додумалась. Благодарю.
#95
by GrayT
Сдается мне что Виталий Августейший нашел таки способ решить задачу без ВК и WSH. Может поделишься?
#96
by Виталий Августейший
95. Нашел, но я еще не придумал новый ник и не оформил во внешнюю обработку.
#98
by Виталий Михайлович
97. Как оформлю - то конечно. Но сейчас пока совсем нет времени на программирование. Надеюсь, что к концу дня смогу выделить время.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получить id и получить объект по id
- Фиксация колонок в многострочной части документа
- Как программно получить получить пароль пользователя в текущем сеансе работ
- Как можно получить список пользователей конфигурации
- Как получить разность дат (Нужно получить количество дней)
- Как получить в модуле формы список колонок формы документа?
- Пролистать список типов или Получить список видов документов, справочников и т.п
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- Получить список объектов плана обмена
- Как получить список видимых колонок табличной части документа?
- v7: Как узнать владельца формы списка справочника, в модуле этой формы списка
- Как получить список баз, зарегистрированных на сервере 1С?
В этой группе 1С
- Пустое значение субконто в оборотно-сальдовой
- Таблица Word в MXL
- ПБУ 18 и РБП порядок действий
- Фиксация колонок в многострочной части документа
- Как выбрать в запросе номенклатуру, которой нет в регистре ....
- Как сравнить документы с одинаковым временем?
- 7.7-Комплексная.Как изменить пиктограмму в графе Общего журнала документов?
- Как настроить софтовое зеркало в W2003S ?
- Как вернуть ссылку на документ после его закрытия
- Ввод налогового учета ОС в Бух 7.7
- Помагите вылетает 1с при сохранении елемента справочника
- Учетная политика по средней
- ЗиК: как выдать сотруднику излишне удержанный НДФЛ?
- Почему я не могу редактировать конфигурацию 1С8?
- Конвертер табличных документов 1С:Предприятия для MS Excel
- Сложные проводки в 1С 8
- Как из таблицы значений выгрузить данные в dbf файл?
- Как же это сделать без мышки?!
- прикрепленные файлы
- В ТЗ надо колонки цифрами назвать.