8.х автозаполнение реквизитов из справочника 8.3

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем shura, 17 апр 2018.

  1. TopicStarter Overlay
    shura
    Offline

    shura

    Регистрация:
    9 авг 2017
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Помогите пожалуйста разобраться. Конфигурация БП 3.0 , Есть справочник СчетаНаОплату. В поступление на расчетный счет добавлен реквизит ссылка на данный справочник. Как сделать автозаполнение? У меня в справочники есть Наименование счета и владелец контрагент. Нужно при выборе счета, например "Счет распределения", у которого владелец контрагент Иванов , субконтоКт1 и Кт2 автоматически заполнять, СубконтоКт1=Иванов, а СубконтоКт2 = Договор клиента.
  2. TopicStarter Overlay
    shura
    Offline

    shura

    Регистрация:
    9 авг 2017
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
  3. Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.013
    Симпатии:
    25
    Баллы:
    54
    У реквизита есть обработчики событий. Делайте через них. Например в обработчике ПриИзменении()
  4. TopicStarter Overlay
    shura
    Offline

    shura

    Регистрация:
    9 авг 2017
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Это ясно) примерный алгоритм кода какой будет? получить, прочитать или как?
  5. Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.013
    Симпатии:
    25
    Баллы:
    54
    Просто подставляете то значение которое вы выбрали в ваши субконто.
    СубконтоКт1 = ВашРеквизит.Контрагент (или как он у вас там называется), а уже по контрагенту тянете договор.
    Если честно не понимаю в чём затык?

    Обработчик ПриИзменении() уже имеет ссылку на выбранные данные, т.е. в вашем случае это ссылка на выбранный объект вашего справочника
  6. TopicStarter Overlay
    shura
    Offline

    shura

    Регистрация:
    9 авг 2017
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    upload_2018-4-19_13-24-10.png
    Сделал Счета при изменении, на сервере написал что СубконтоКт1 равно тому и тому, а там вот что
  7. Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.013
    Симпатии:
    25
    Баллы:
    54
    Листинг СчтеНаОплатуПриИзменииНаСереве() и желательно листинг процедуры которая её вызывает, можете выложить?
  8. TopicStarter Overlay
    shura
    Offline

    shura

    Регистрация:
    9 авг 2017
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    &НаСервере
    Процедура СчетаНаОплатуПриИзмененииНаСервере(Элемент)
    П = Новый Структура("Ключ", ЭтотОбъект.Ссылка);
    Форма = ПолучитьФорму("Справочник.СчетаНаОплату.ФормаОбъекта", П);
    Форма.Прочитать();
    Объект.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.03.3");
    Объект.СубконтоКт1 = Объект.СчетаНаОплату.Владелец;
    Объект.СубконтоКт2 = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Договор с клиентом);
    КонецПроцедуры

    &НаКлиенте
    Процедура СчетаНаОплатуПриИзменении(Элемент)
    СчетаНаОплатуПриИзмененииНаСервере(Элемент);
    КонецПроцедуры
  9. Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.013
    Симпатии:
    25
    Баллы:
    54
    У меня несколько вопросов:
    1.Как давно вы знакомы с 1С?
    2. Зачем вы на сервер передает параметр Элемент, который потом нигде не используете?
    3.Что мешает вам вот это :
    Код:
    Объект.СубконтоКт1 = Объект.СчетаНаОплату.Владелец;
    использовать на клиенте?

    По факту вам на сервере надо :

    Код:
    Функция СчетаНаОплатуПриИзмененииНаСервере(Контрагент)
    Возврат Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Договор с клиентом", Контрагент);
    КонецФункции

    Соответственно на клиенте:
    Код:
    Объект.СубконтоКт1 = Объект.СчетаНаОплату.Владелец;
    Объект.СубконтоКт2 = СчетаНаОплатуПриИзмененииНаСервере(Объект.СчетаНаОплату.Владелец);
    
    Примерно так
  10. TopicStarter Overlay
    shura
    Offline

    shura

    Регистрация:
    9 авг 2017
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Я пробовал просто на клиенте Объект.СубконтоКт1 = Объект.СчетаНаОплату.Владелец;
    И получил ошибку что поле объекта не обнаружено(Владелец), а потом начал чудить уже. Потому что у формы элемента справочника есть поле Владелец.
  11. Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.013
    Симпатии:
    25
    Баллы:
    54
    Так воспользуйтесь отладчиком и посмотрите, какие свойства и методы доступны для вашего реквизита.
    Ну или как вариант запросом получите необходимые данные.

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