7.7 Не могу передать значения из справочника в текстовое поле

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем kulkrise, 10 сен 2011.

  1. TopicStarter Overlay
    kulkrise
    Offline

    kulkrise

    Регистрация:
    5 сен 2011
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    У меня есть справочник (допустим, спрИсточник), отображается в форме списка, выбор и изменение элементов справочника также осуществляются в списке, имеет три столбца (Код, Источник, Наименование).
    Есть документ (Документ), который имеет реквизит ИсточникИнф (текстовое поле с кнопкой выбора), при нажатии на кнопку выбора открывается СпрИсточник и выбирается строка.

    Как передать два значения (Источник и Наименование) из справочника в текстовое поле ИсточникИнф?

    Пыталась прописать но, во-первых, не могу определить к какой процедуре или функции отнести (или просто без них?), а, во-вторых, как не описываю, выдает различные ошибки модуля.
    Поиск в нете мне не помог.

    Заранее благодарю.
    С уважением, kulkrise.
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    В документе:
    Код:
    Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога, ФлагСтандОбр)
    Если ИдентЭлемДиалога = "ИсточникИнф" Тогда
    ФлагСтандОбр = 0;
    
    СпрИсточник = СоздатьОбъект("Справочник.СпрИсточник");
    Если СпрИсточник.Выбрать("Выберите источник", "ИмяФормыСправочника") = 1 Тогда
    ИсточникИнф = СокрЛП(СпрИсточник.Источник) + СокрЛП(СпрИсточник.Наименование);
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    
  3. TopicStarter Overlay
    kulkrise
    Offline

    kulkrise

    Регистрация:
    5 сен 2011
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо за написанный код, однако по какой-то причине работает не так как хотелось бы, то есть
    я выбираю строку справочника СпрИсточник, он закрывается, и вместо подставления значений двух колонок (СпрИсточник.Источник и СпрИсточник.Наименование), текстовое поле остается пустым.
  4. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Проверьте тип поля ИсточникИнф.
    Что выводиться в окне сообщений для кода следующего вида?
    Код:
    Если СпрИсточник.Выбрать("Выберите источник", "ИмяФормыСправочника") = 1 Тогда
    Сообщить(СокрЛП(СпрИсточник.Источник) + СокрЛП(СпрИсточник.Наименование));
    ИсточникИнф = СокрЛП(СпрИсточник.Источник) + СокрЛП(СпрИсточник.Наименование);
    КонецЕсли;
    
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А почему реквзит рексовый в документе, а не справочник?
  6. TopicStarter Overlay
    kulkrise
    Offline

    kulkrise

    Регистрация:
    5 сен 2011
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Тип поля ИсточникИнф:
    Справочник.СпрИсточник

    Через Сообщить все как раз таки и отображает, у меня это получалось,
    но само поле ИсточникИнф остается пустым
  7. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Ну так поле ни разу не текстовое :angry:.
    В поле ИсточникИнф может быть только значение справочника (отображаться будет либо Код, либо Наименование - в зависимости от основного представления справочника). Если нужна какая-то дополнительная информация об элементе справочника на форме добавьте элемент Текст (синяя буква Т на панели Элементы диалога) и в свойствах элемента (поле Формула на закладке Дополнительно) напишите, что нужно. Например, СокрЛП(ИсточникИнф.Источник).

    P.S. И уберите код связанный с ИсточникИнф в обработчике ПриНачалеВыбораЗначения.
  8. TopicStarter Overlay
    kulkrise
    Offline

    kulkrise

    Регистрация:
    5 сен 2011
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    убрала часть кода

    Я создала новое поле - текстовое, а ту строку удалила. Прописала формулу для него - ИсточникИнф.
    Создала кнопку с формулой - ПриНачалеВыбораЗначения().

    При нажатии на кнопку открывается спрИсточник я выбираю нужную строку, значения двух полей в нее передаются (напр., Журнал "Главбух"), но после записи и проведения документа это текстовое поле при повторном открытии сново не заполнено. Почему изменения не сохраняются?

    И текстовое поле нельзя добавить как колонку в журнале документов, как это сделать? Я создала новую колонку в самом журнале но как подставить в нее значения текстового поля?

    Сам код сейчас выглядит так:
    Код:
    Перем ИсточникИнф;
    
    Процедура ПриНачалеВыбораЗначения()
    СпрИсточник = СоздатьОбъект("Справочник.СпрИсточник");
    Если СпрИсточник.Выбрать("Выберите источник", "ИмяФормыСправочника") = 1 Тогда
    ИсточникИнф = СокрЛП(СпрИсточник.Источник) + " " + СокрЛП(СпрИсточник.Наименование);
    КонецЕсли;
    КонецПроцедуры
    
  9. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    >Создала кнопку с формулой - ПриНачалеВыбораЗначения().
    Бред.
    ПриНачалеВыбораЗначения(). предопределенная процедура в модуле формы, не надо ея засовывать в формулу.

    >но после записи и проведения документа это текстовое поле при повторном открытии сново не заполнено.

    сохраняются только реквизиты документа, если поле текстовое и не привязано к какому-нибудь реквизиду дока, как оно может быть заполнено при открытии?

    ИсточникИнф должен быть реквизитом документа, причем типа Справочник.СпрИсточник.
  10. TopicStarter Overlay
    kulkrise
    Offline

    kulkrise

    Регистрация:
    5 сен 2011
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Если это строка, то естественно, там есть кнопка выбора, но тогда в строку я не могу передать значения сразу двух полей из одного справочника (Значение1+Значение2), а если создать текстовое поле, для отображения этих значений, и рядом кнопку, то она не откроет справочник без вызова процедуры открытия справочника.

    Логично что они и не должны сохраняться, а только передаются, но опять же возвращаемся к тем же баранам :D :angry:

    Ага, в точку! а оно так и было изначально, только не работало так, как нужно.

    И снова суть проблемы, то бишь эти самые бараны:
    из одного справочника из двух столбцов одной строки в один реквизит документа (Строка) должны передаваться два значения и сохраняться, соответственно. Как это реализовать? Есть идеи?

    Спасибо за конструктивную критику,
    С уважением, kulkrise.
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    У вас должно быть как было изначально. Т.е. в документе д.б. реквизит типа спрИсточник (назовем его ДокРекв).

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

    Я бы попросил вас конкретизировать задачу - опишите более развернуто что вам нужно. Возможно существуе другой способ хранения/отображения.

Поделиться этой страницей