8.х Программное заполнение документов

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

  1. TopicStarter Overlay
    fedot25
    Offline

    fedot25

    Регистрация:
    7 июн 2014
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Доброго господа! Такой вопросик. Хочу заполнить программно документ. Например в базовой бухие. Когда я там ввожу наменклатуру интерактивно, автоматом выставляются счета, ндс и пр. реквизиты. Или к примеру организацию, тоже автоматом выставляются связанные с этим реквизиты. Но, если делать это программно, счета автоматом в ТЧ не подставляются. Документ создается из внешней обработки. Есть ли способ как то "эмулировать" интерактивное заполнение. Что бы не плодить строки типо НовыйДок.УчитыватьКПН = Истина или Стр = Товары.Добавить(); Стр.СчетБУ = ПланСчетов.Типовой.КакойТоТамСчет ?
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.988
    Симпатии:
    398
    Баллы:
    104
    Нет, пропишите программный код, как и при интерактивном добавлении. Делов то на 10 минут.
  3. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    ты злой :)
    смотрите обработчик ПриИзменении на поле номенклатуры табличной части - там будет заполнение, копируйте его к себе. а если там вызов процедуры из модуля объекта документа - то у вас счастье - вызывайте ее у себя и все. В случае с организацией в шапке - то же самое - смотрите обработчик ПриИзменении на поле формы.
  4. Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Спасибо, я так и думал.)
    Чтобы не плодить новую тему, хочу от вас, профессионалов, узнать вот что: Можно ли программно из внешней обработки по ссылке на только что созданный объект справочника "контрагенты", который только что создан из этой обработки, получить доступ к реквизиту формы этого справочника и внести в него информацию, так как-бы если бы это делал пользователь ?
    p.s.
    Речь о бухгалтерии от 1с на 8.3
    Это чтобы ничего не надо было копировать к себе.
  5. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    если код выполняется в сеансе пользователя и если реквизит есть только на форме, а не в самом контрагенте (тогда его лучше в контрагенте и заполнить), - можно.
    но лучше не надо :) - это не очень принято на управляемых формах.

    какой такой есть реквизит на форме контрагента, которого нет в самом справочнике контрагентов и связанных с ним?
  6. Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Я имел ввиду элемент/реквизит основной формы.
    Посмотрите на скрине. Это БИКБанка

    Допустим выполняю из внешней обработки из модуля ее формы:

    &НаКлиенте
    Процедура GO(Команда)
    GOНаСервере();
    КонецПроцедуры

    &НаСервере

    Процедура GOНаСервере()

    НовыйБанковскийСчет = Справочники.БанковскиеСчета.СоздатьЭлемент();
    НовыйБанковскийСчет.Владелец = Справочники.Контрагенты.НайтиПоНаименованию("ООО ААА");
    НовыйБанковскийСчет.НомерСчета = 40702810611000000000;
    НовыйБанковскийСчет.ВалютаДенежныхСредств = Справочники.Валюты.НайтиПоНаименованию("руб.");

    //............Далее вопрос

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

    Вопрос:
    Так как номер счета - это реквизит объекта, я могу его легко заполнить из обработки и записать.
    А как обратититься к полю БИКа?
    Но меня интересует как мне из обработки заполнить реквизит формы БИКБанка.
    Дело в том что после ввода БИКа автоматически находится банк и создается в справочнике Банки, а также
    для контрагента - владельца прописывается ссылка на этот банки, где имя ссылка состоит из номера счета и наименования.

    Вообщем мне нужно программно из обработки выполнить действие пользователя по заполнению поля БИКБанка и нажатие кнопки Записать и Закрыть.

    Можете написать дописать код как это сделать ?

    Вложения:

    • ef4534.jpg
      ef4534.jpg
      Размер файла:
      517,5 КБ
      Просмотров:
      9
  7. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    для этого нужно только записать ссылку на нужный банк в реквизит объекта справочника БанковскиеСчета
    БИК в справочнике банков - это код элемента. если такого элемента нет - то нужно найти по коду элемент в справочнике КлассификаторБанковРФ и создать его в Банках
  8. Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Спасибо. Но сделать так, но получается, что воспроизвести именно действия пользователя программно по заполнению элемента формы нельзя и в принципе нельзя из внешней обработки обратиться к элементу формы, кроме модуля самой формы?
  9. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    к элементу формы обратиться можно, смоделировать действия клиента - тяжелее. кода писать придется не меньше, чем просто взять из той же формы кусок кода, определяющий банк по БИК

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