Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Окно выбора элемента справочника прячется за основным окном.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
miha74
Всем привет! Пишу обработку для переноса цен из ПУБа в ПУБ. Платформа 7.70.027. На форме есть таблица значений, клацаю на конкретной колонке должно показаться окошко выбора из справочника, а оно падлюка прячется под основное окно, помогает ALT+TAB но неудобно же. Справочник базы подключен через OLE.
Процедура ПриДвойномЩелчке()
    
    Если (тзТМЦ.ТекущаяКолонка() = "Метка") ИЛИ (тзТМЦ.ТекущаяКолонка() = "ТМЦИсточник") Тогда    
        тзТМЦ.Метка = ?(тзТМЦ.Метка=2, 1, 2);
    ИначеЕсли тзТМЦ.ТекущаяКолонка() = "ТМЦПриемник" Тогда
        Если СпрТМЦОле.Выбрать("Выберите соответствие в базе-приемнике", "ФормаСписка") = 1 Тогда
            тзТМЦ.ТМЦПриемник = СпрТМЦОле.ТекущийЭлемент().Наименование;    
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

У кого есть ПУБ проверьте, клацайте по самой правой колонке. необходимо зарегистрироваться для просмотра ссылки
miha74
up
MATEVI
Цитата(miha74 @ 31.08.09, 11:01) необходимо зарегистрироваться для просмотра ссылки
up

Так бы и сразу smile.gif Уже б забыл.



ИначеЕсли тзТМЦ.ТекущаяКолонка() = "ТМЦПриемник" Тогда
Если ВвестиЗначение(сп,"Выберите соответствие","Справочник."+СпрТМЦОле.Вид())=1 Тогда
//Если СпрТМЦОле.Выбрать("Выберите соответствие в базе-приемнике","ФормаСписка") = 1 Тогда
тзТМЦ.ТМЦПриемник = сп.ТекущийЭлемент().Наименование;//СпрТМЦОле.ТекущийЭлемент().Наименование;
КонецЕсли;
КонецЕсли;


сорри. еще надо объявить переменную сп.
MATEVI
и если честно не очень это удобно. постоянно клацать для соответствия. не лучше ли просто заполнять совпадающие справочники используя код или другой какой то реквизит?
miha74
Цитата(MATEVI @ 31.08.09, 11:50) необходимо зарегистрироваться для просмотра ссылки
и если честно не очень это удобно. постоянно клацать для соответствия. не лучше ли просто заполнять совпадающие справочники используя код или другой какой то реквизит?

Ну это так, на всякий случай на будущее(для единичных случаев несоответствий, например после ввода новой номенклатуры). Справочник ТМЦ будет приводится в порядок во всех базах. Для поиска соотв. я использую реквизит Наименование.
К сожалению Ваш метод ВвестиЗначение() открывает Выбор из справочника текущей базы, а надо открытой по ОЛЕ... 64000000.gif
MATEVI
Цитата(miha74 @ 31.08.09, 14:57) необходимо зарегистрироваться для просмотра ссылки
Ну это так, на всякий случай на будущее(для единичных случаев несоответствий, например после ввода новой номенклатуры). Справочник ТМЦ будет приводится в порядок во всех базах. Для поиска соотв. я использую реквизит Наименование.
К сожалению Ваш метод ВвестиЗначение() открывает Выбор из справочника текущей базы, а надо открытой по ОЛЕ... 64000000.gif

Да загнал... Покраснел smile.gif Признаю ошибку. Это в корне не правильно. Например
V7=СОЗДАТЬОБЪЕКТ("V77.APPLICATION");
...
БухИт = V7.СОЗДАТЬОБЪЕКТ("БухгалтерскиеИтоги");
Но ввести значение тогда не работает
miha74
Угу... 51000000.gif
MATEVI
Тогда остается наверно один вариант делать еще таблицу значений. грузить в нее из подключенной базы справочники клацать по ней и синхронизировать таким образом. Либо "альт+табать" все время.
miha74
MATEVI, это все хорошо, меня интересует еще у Вас тоже окошко выбора из справочника теряет фокус? Вы запускали мою чудо-обработку? smile.gif
MATEVI
Цитата(miha74 @ 01.09.09, 10:17) необходимо зарегистрироваться для просмотра ссылки
MATEVI, это все хорошо, меня интересует еще у Вас тоже окошко выбора из справочника теряет фокус? Вы запускали мою чудо-обработку? smile.gif

необходимо зарегистрироваться для просмотра ссылки
Не совсем понял. Если это. то никак. У себя делал так
необходимо зарегистрироваться для просмотра ссылки
Если не разворачивать то все в одну ширину. При развороте размер остается. Расширил по максмуму. И убрал в свойствах формы "Изменять размер"
miha74
Э-э-э.... Надо открыть обработку именно в ПУБе, выбираем базу приемник тоже ПУБ, нажимаем Подключиться к базе, ТЗ на форме заполнятся значениями сдвух баз, клацаем двойным щелчком на самой правой колонке - должнопоказаться окошко выбора элемента соответсвующего справочника базы приемника ОЛЕ. Так вот оно может один раз показаться а может и нет, следующие разы не показывается точно, типа альтаб ктото нажал и фокус окна переместился на основное окно 1С, а окно выбора под ним. На других конфах не запустится, справочники не такие.Фух.
MATEVI
Цитата(miha74 @ 01.09.09, 12:19) необходимо зарегистрироваться для просмотра ссылки
Э-э-э.... Надо открыть обработку именно в ПУБе, выбираем базу приемник тоже ПУБ, нажимаем Подключиться к базе, ТЗ на форме заполнятся значениями сдвух баз, клацаем двойным щелчком на самой правой колонке - должнопоказаться окошко выбора элемента соответсвующего справочника базы приемника ОЛЕ. Так вот оно может один раз показаться а может и нет, следующие разы не показывается точно, типа альтаб ктото нажал и фокус окна переместился на основное окно 1С, а окно выбора под ним. На других конфах не запустится, справочники не такие.Фух.

Та не вроде отрабатывает. Ну конечно после альт таба. Если долго не "табать" вылазит окно сервер занят... Так же стандартный глюк ОЛЕ неподдержка русскоязычных названий каталогов и пробелов в них. Тренировался на на 2-х копиях Демо-Пуба.
MATEVI
И как вариант вот попробуй может подойдет


Процедура ПриДвойномЩелчке()
Если (тзТМЦ.ТекущаяКолонка() = "Метка") ИЛИ (тзТМЦ.ТекущаяКолонка() = "ТМЦИсточник") Тогда
тзТМЦ.Метка = ?(тзТМЦ.Метка=2, 1, 2);
ИначеЕсли тзТМЦ.ТекущаяКолонка() = "ТМЦПриемник" Тогда

//Если СпрТМЦОле.Выбрать("Выберите соответствие в базе-приемнике","ФормаСписка") = 1 Тогда
// тзТМЦ.ТМЦПриемник = сп.ТекущийЭлемент().Наименование;

//Поиск всеже лучше организовать по коду или по уникальному реквизиту
//но его тогда надо добавить в таблицу значений
Если СпрТМЦОле.НайтиПоНаименованию(тзТМЦ.ТМЦИсточник,0,1)=1 Тогда
тзТМЦ.ТМЦПриемник = СпрТМЦОле.ТекущийЭлемент().Наименование;
Иначе
Предупреждение("Нет такого справочника в базе приемнике!",1);
КонецЕсли;
КонецЕсли;

КонецПроцедуры


Ну и проверка на удаленные и группы тоже будет не лишняя.
ЗЫ Исправил грмматическую ошибку.
ЗЫЫ Так же вместо предупреждения возможно и создание (копирование) справочника из одной базы.
miha74
Спасибо за проверку. Значит это глюк платформы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.