![]() |
![]() |
GSoft 04.08.2004 - 20:17 | Возможно ли из внешней обработки открыть и закрыть форму элементов справочника перебирая их при этом? |
New Angel 1 - 04.08.2004 - 20:45 | (0) Можно. Тока нужно предварительно поломать проц. ПриОткрытии() справочника. (Это если штатными средствами). А если нештатными - загляник к АЛьФу, у него помоему такое было. |
Guk 2 - 04.08.2004 - 20:52 |
(0) Что за манера, в формулировке вопроса задать ребус, никак не относящийся к вопросу? Нормальным русским языком, объяснить можешь, что тебе нужно сделать?... |
МихаилМ 3 - 04.08.2004 - 20:54 | можно и штатными . на синоре посмотрите. |
Марат 4 - 04.08.2004 - 21:01 |
прикольно :^) а это зачем, если не секрет? вот так вот прямо помелетешить перед юзером всеми элементами? Вот интересно, а с частотой 25 элементов в секунду Альф смогёт? :^) |
GSoft 5 - 04.08.2004 - 21:10 |
Все до банальности просто - такой ребус возник от незнания. Суть: необходимо перенести ряд справочников из ТиС 927 в ПУБ 283 так вот отдельная информация в справочниках хранится не в реквизитах самого справочника, а в его внутренних переменных(поправьте если ошибаюсь в определениях). Найденные мной обработки переноса справочников переносят только реквизиты справочника и не более. Я пошел самым простым путем(как мне тогда казалось) - создал соответствующие реквизиты для того чтобы присвоить им значения соответствующих переменных. Но получается это сделать только при открытой форме элемента. Вот отсюда и возник этот ребус. Если у кого есть другие соображения выслушаю все, так как сам пока еще в области 1С новичок |
Guk 6 - 04.08.2004 - 21:14 |
(5)>>хранится не в реквизитах самого справочника, а в его внутренних переменных(поправьте если ошибаюсь в определениях) Когда я вот это пойму, наверное смогу тебе помочь... |
GSoft 7 - 04.08.2004 - 21:19 |
к примеру модуль формы элемента справочника Функция ЗаписьЮрФизЛица() ВидЮрФизЛица = ВидКонтрагента.ПолучитьЗначение(ВидКонтрагента.ТекущаяСтрока()); // Объект для записи юр/физ. лица. Объект = СоздатьОбъект("Справочник."+ВидЮрФизЛица); Если Объект.НайтиЭлемент(ЮрФизЛицо) = 0 Тогда Объект.Новый(); КонецЕсли; Если ВидЮрФизЛица <> "ФизЛица" Тогда // Заполнение реквизитов слоя "ЮрЛицо". Объект.Наименование = НаименованиеЮрЛица; Объект.ПолнНаименование = ПолнНаименованиеЮрЛица; Объект.ИНН = ИННЮрЛица; Объект.Телефоны = ТелефоныЮрЛица; Объект.ОКПО = ОКПО; Иначе // Заполнение реквизитов слоя "ФизЛицо". Объект.Наименование = НаименованиеФизЛица; Объект.ПолнНаименование = ПолнНаименованиеФизЛица; Объект.ИНН = ИННФизЛица; Объект.Телефоны = ТелефоныФизЛица; Объект.ДокументУдЛичность = ДокументУдЛичность; КонецЕсли; Объект.ЮрАдрес = ЮрАдрес; Объект.ФактАдрес = ФактАдрес; тот же ИНН - насколько я понимаю он здесь описан как реквизит слоя, а как его значение получить извне простой обработке перебора |
Guk 8 - 04.08.2004 - 21:23 |
Видимо речь идет о реквизитах формы, не относящихся напрямую к реквизитам справочника? Если да, то на них можно забить. Их нет в БД. Надо смотреть алгоритмы, формирующие их из данных, к коим как раз относятся реквизиты справочника... |
GSoft 9 - 04.08.2004 - 21:32 |
возможно, но как? к примеру все тот же инн Насколько я понимаю нижеприведенная процедура выполняется при любом изменении ИНН. Исходя из этого к каким объектам необходимо обратиться чтобы получить его значение? //****************************************************************************** // ПриИзмененииИНН() // // Параметры: // // Возвращаемое значение: // Нет. // // Вызывается из формул элементов диалога: // ИННЮрЛица, ИННФизЛица. // // Описание: // Проверяет уникальность ИНН в справочнике юр. / физ. лиц. // Процедура ПриИзмененииИНН() ВидЮрФизЛица = ВидКонтрагента.ПолучитьЗначение(ВидКонтрагента.ТекущаяСтрока()); // ИНН и длина ИНН. Если ВидЮрФизЛица <> "ФизЛица" Тогда ИНН = ИННЮрЛица; Длина = 20; Иначе ИНН = ИННФизЛица; Длина = 12; КонецЕсли; // ИНН может быть не указан. Длина = Метаданные.Справочник(ВидЮрФизЛица).Реквизит("ИНН").Длина; Если СтрДлина(СокрЛП(ИНН)) < Длина Тогда Возврат; КонецЕсли; // Список найденных элементов с таким же ИНН. Список = СоздатьОбъект("СписокЗначений"); Объект = СоздатьОбъект("Справочник."+ВидЮрФизЛица); Объект.ВыбратьЭлементыПоРеквизиту("ИНН", ИНН, 0, 1); // Поиск элементов с таким же ИНН. Пока Объект.ПолучитьЭлемент(1) = 1 Цикл Если Объект.ТекущийЭлемент() = ЮрФизЛицо Тогда Возврат; // элемент уже был записан Иначе Список.ДобавитьЗначение(Объект.ТекущийЭлемент()); КонецЕсли; КонецЦикла; // Элементы с таким же ИНН не найдены. Если Список.РазмерСписка() = 0 Тогда Возврат; // Найден один элемент с таким же ИНН. ИначеЕсли Список.РазмерСписка() = 1 Тогда Стр = "В справочнике """+Объект.ПредставлениеВида()+""" уже есть элемент с таким же ИНН! |Выбрать существующий элемент справочника?"; Если Вопрос(Стр, "Да+Нет", 60) = "Да" Тогда ЮрФизЛицо = Список.ПолучитьЗначение(1); ПриИзмененииЮрФизЛица(); // Автозаполнение наименования контрагента. Наименование = ЮрФизЛицо.Наименование; КонецЕсли; // Найдено несколько элементов с таким же ИНН. Иначе Стр = "В справочнике """+Объект.ПредставлениеВида()+""" уже есть элементы с таким же ИНН! |Выбрать один из существующих элементов справочника?"; Если Вопрос(Стр, "Да+Нет", 60) = "Да" Тогда Если Список.ВыбратьЗначение(ЮрФизЛицо, "Элементы с ИНН "+ИНН, 0, 60, 0) = 1 Тогда ПриИзмененииЮрФизЛица(); // Автозаполнение наименования контрагента. Наименование = ЮрФизЛицо.Наименование; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ПриИзмененииИНН() //****************************************************************************** |
Guk 10 - 04.08.2004 - 21:44 | (9) Видимо из соответствующих реквизитов, соответствующих справочников. ИНН - это реквизит (насколько я помню ТиС, хотя могу ошибаться) справочника физ. лица и справочника юр. лица. В справочнике ЮрФизЛица имеется ссылка либо на тот, либо на другой справочник... |
GSoft 11 - 04.08.2004 - 21:47 |
я об этом догадывался, но весь вопрос в том как до них достучаться самому пока знаний не хватает |
pit 12 - 04.08.2004 - 22:07 |
В последних ТиСах много такой хни навернуто. Извращенцы... .. P.S. задолбался... при переносах... разбираться с некоторыми алгоритмами формирования... тьфу... лучше я просто достану их из кармана... и ее глава... |
Guk 13 - 04.08.2004 - 22:10 | (12) Странно. Я хни не видел. По-моему всё логично... |
GSoft 14 - 04.08.2004 - 22:12 | умом Россию не понять... |