Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как открыть форму элемента справочника Контрагенты из формы расходной накладной в 1С 7.70.003 торговля склад для Украины?          
ZUBR Подменю пользователя
сообщение 24.01.20, 19:48
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

Здравствуйте!!!
Вопрос следующий. У меня на форме расходной накладной есть флажок Проблема. Для этого флажка в модуле формы создана процедура Проблема(). В этой процедуре я хочу написать код программы для открытия формы элемента справочника Контрагенты, который внесен в документ РасходнаяНакладная. То есть, если в поле Контрагент РасходнойНакладной записан Иваненко, и в документе ставится галочка Проблема (флажок), то тогда автоматически должен открыться справочник Контрагенты , конкретно элемент с наименованием Иваненко. Для того, чтобы в примечании элемента справочника пользователь прописал, в чем проблема этого покупателя или поставщика. Для этого в процедуре Проблема() я прописал следующий код:

Процедура Проблема()                                   
     Спр = СоздатьОбъект("Справочник.Контрагенты");
     Спр.ВыбратьЭлементы();
      Спр.НайтиПоНаименованию(Контрагент,0,1);
      Сообщить(Спр.ТекущийЭлемент());
    ОткрытьФорму(Спр.ТекущийЭлемент());
КонецПроцедуры


Но при выполнении окно с искомым элементом справочника не появляется, а появляется сообщение об ошибке:
" ОткрытьФорму(Спр.ТекущийЭлемент());
{Документ.РасходнаяНакладная.Форма.Модуль(170)}: Открытие окна в данном режиме недоступно!"

Прошу подсказать, в чем ошибка?
Строка
Сообщить(Спр.ТекущийЭлемент());
вспомогательная. Я ее потом уберу. Кстати, сообщение тоже никакое не появляется. Спасибо!

andrew76 Подменю пользователя
сообщение 25.01.20, 5:12
Сообщение #2

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

ZUBR @ Вчера, 22:48 * ,

Доброе утро !

Если реквизит документа Расходная Накладная Контрагент имеет тип Справочник.Контрагенты,тогда
код должен быть примерно таким :

Процедура Проблема()                                   
     Спр = СоздатьОбъект("Справочник.Контрагенты");
      Спр.Наименованию(Контрагент.Наименование,0,1); //
      Сообщить(Спр.ТекущийЭлемент());
    ОткрытьФорму(Спр.ТекущийЭлемент());
КонецПроцедуры

andrew76 Подменю пользователя
сообщение 25.01.20, 8:54
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

andrew76 @ Сегодня, 8:12 * ,

Извиняюсь,небольшая поправочка в коде:

Процедура Проблема()                                   
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.НайтиПоНаименованию(Контрагент.Наименование,0,1); //
    Сообщить(Спр.ТекущийЭлемент());
    ОткрытьФорму(Спр.ТекущийЭлемент());
КонецПроцедуры

ZUBR Подменю пользователя
сообщение 25.01.20, 18:45
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

andrew76 @ Сегодня, 8:54 * ,
Нет, не работает. Когда я устанавливаю флажок на форме РасходнойНакладной "Проблема", и соответственно запускается процедура Проблема, то выскакивает то же сообщение, что и раньше:

" ОткрытьФорму(Спр.ТекущийЭлемент());
{Документ.РасходнаяНакладная.Форма.Модуль(170)}: Открытие окна в данном режиме недоступно!"

Реквизит Контрагент имеет тип Справочник.Контрагенты, да.

andrew76 Подменю пользователя
сообщение 26.01.20, 5:14
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

ZUBR @ Вчера, 21:45 * ,

А команда Сообщить() выдает пустую строку ?

Если нижеуказанный код повесить на кнопку ,которая будет расположена на форме
Расходной Накладной,то все должно работать ( у меня по крайней мере работает).
Если вешать этот код на обработчик флажка,то ошибка будет вылетать.
Поэтому могу предложить другой вариант открытия формы.

Процедура Проблема()                                   
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.НайтиПоНаименованию(Контрагент.Наименование,0,1); //
    Сообщить(Спр.ТекущийЭлемент());
    ОткрытьФорму(Спр.ТекущийЭлемент());
КонецПроцедуры


Отрыть форму модально: // в этом варианте все должно работать

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

Спасибо сказали: ZUBR,

ZUBR Подменю пользователя
сообщение 26.01.20, 22:57
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

andrew76 @ Сегодня, 5:14 * , спасибо! Все заработало. Правда, не совсем понятно, чем отличается ОткрытьФормуМодально от просто ОткрытьФорму

andrew76 Подменю пользователя
сообщение 27.01.20, 2:52
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

ZUBR @ Сегодня, 1:57 * ,

Модальное окно – окно, блокирующее весь интерфейс приложения, при этом исполнение кода останавливается до момента получения ответа пользователя.

andrew76 Подменю пользователя
сообщение 27.01.20, 7:14
Сообщение #8

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

ZUBR @ 24.01.20, 22:48 * ,

После нажатия на флажок,вызывается у Вас форма справочника,после сохранения в ней информации , форма закрывается нормально ?

mut Подменю пользователя
сообщение 27.01.20, 16:15
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 199
Из: Новая Каховка
Спасибо сказали: 203 раз
Рейтинг: 237.5

А почему не использовать сам реквизит из накладной, зачем поиск по наименованию?

Спр.НайтиЭлемент(Контрагент);

Спасибо сказали: anatol1c, ZUBR,

andrew76 Подменю пользователя
сообщение 27.01.20, 16:22
Сообщение #10

Оратор
*****
Группа: Пользователи
Сообщений: 437
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

mut @ Сегодня, 19:15 * ,

можно и так.

takefive Подменю пользователя
сообщение 28.01.20, 10:45
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 60
Из: Днепропетровск
Спасибо сказали: 22 раз
Рейтинг: 23.2

Зачем вообще поиск, когде есть ссылка?
ОткрытьФорму(Контрагент)


Signature
без свинга нет музыки...

Спасибо сказали: ZUBR,

ZUBR Подменю пользователя
сообщение 28.01.20, 18:46
Сообщение #12

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

andrew76 @ Вчера, 7:14 * ,
Вызываемая форма закрывается нормально

takefive @ Сегодня, 10:45 * ,
Попробую как вы предложили. О результатах сообщу. Спасибо!

ZUBR Подменю пользователя
сообщение 31.01.20, 22:23
Сообщение #13

Завсегдатай
****
Группа: Пользователи
Сообщений: 231
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

takefive @ 28.01.20, 10:45 * ,
без поиска и создания объекта не обойтись, потому что кроме открытия формы я из расходной накладной в элемент справочника переношу значение флажка Проблема:
Спр.Проблема = Проблема;

А открыть форму справочника мне нужно для того, чтобы при установлении флажка Проблема в комментарии элемента справочника контрагента вносилась запись, в чем именно состояла проблема. Например "Клиент кричал пасть порву" crazy.gif

takefive Подменю пользователя
сообщение 04.02.20, 11:04
Сообщение #14

Говорящий
***
Группа: Пользователи
Сообщений: 60
Из: Днепропетровск
Спасибо сказали: 22 раз
Рейтинг: 23.2

Позиционироваться также лучше по ссылке
Если Спр.НайтиЭлемент(Контрагент) = 1 Тогда

т.с. больше шансов... smile.gif


Signature
без свинга нет музыки...

Спасибо сказали: ZUBR,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 12:13
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!