Как автоматически заполнить реквизиты документа

Я отвечу так:

Глобальный контекст (Global context)
ЗаполнитьЗначенияСвойств (FillPropertyValues)
Синтаксис:

ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>, <СписокСвойств>, <ИсключаяСвойства>)
Параметры:

<Приемник> (обязательный)

Тип: Произвольный.
Значение, чьи свойства будут заполнены значениями соответствующих свойств <Источника>.
<Источник> (обязательный)

Тип: Произвольный.
Значения свойств данного объекта будут установлены в соответствующие свойства <Приемника>.
<СписокСвойств> (необязательный)

Тип: Строка.
Список имен свойств, разделенный запятыми, которые необходимо заполнить.
Если свойства не указаны, то копируются только те, которые представлены и в <Источнике> и в <Приемнике>.
Если свойства указаны, то они обязательно должны присутствовать в обоих объектах.
Если в <Источнике> или <Приемнике> заданное свойство отсутствует, то будет вызвано исключение.
<ИсключаяСвойства> (необязательный)

Тип: Строка.
Список имен свойств, разделенный запятыми, которые необходимо исключить из заполнения.
Описание:

Копирует значения свойств <Источника> в свойства <Приемника>. Сопоставление производится по именам свойств.
Если указаны копируемые свойства, то в заполнении участвуют только они, параметр <ИсключаяСвойства> игнорируется.
В противном случае, если указан параметр <ИсключаяСвойства>, то свойства перечисленные в нем, исключаются из обработки.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Добавлено через 12 минут

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    
    ЧтоБудемЗАполнять = Объект; //Если реквизит объекта
    ЧтоБудемЗаполнять = ЭтаФорма; //Если реквизит формы
    
    Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
        ЗаполнитьНаСервере(ЧтоБудемЗАполнять); 
    КонецЕсли; 
    
КонецПроцедуры
 
&НаСервере
Процедура ЗаполнитьНаСервере(ЧтоЗаполнять)
 
    ЗаполнитьЗначенияСвойств(ЧтоЗаполнять,Объект.Контрагент);
 
КонецПроцедуры

Добавлено через 3 минуты
Забыл дописать:
Параметром только передавать нельзя…
Либо так

1C
1
ЗаполнитьЗначенияСвойств(Объект,Объект.Контрагент);

либо так

1C
1
ЗаполнитьЗначенияСвойств(ЭтаФорма,Объект.Контрагент);

Обязательно с директивой &наСЕРВЕРЕ

   keramik

06.01.15 — 09:04

Добрый день. Задача — заполнить в документе поле «Должность» данными поля «Должность» из справочника «КонтактныеЛицаКонтрагентов» так, чтобы при выборе контрагента автоматически поле «Должность» менялось на соответствующее.

В модуле ФормыДокумента написал следующий код:

&НаКлиенте

Процедура КонтактнаяПерсонаПриИзменении()

ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере(ДокументОбъект.КонтактныеЛицаКонтрагентов);

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

&НаСервереБезКонтекста

Функция ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере(КонтактныеЛицаКонтрагентов)

Возврат КонтактныеЛицаКонтрагентов.Должность;

КонецФункции

Но при запуске соответствующей формы, появляется сообщение о том, что функция ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере не определена.

Если прописать перед функцией просто &НаСервере, то такой ошибки нет, но при выборе Контрагента появляется сообщение Object field not found (РеквизитСправочникаКонтактнаяПерсона).

  

Партнерская программа EFSOL Oblako

   iceman2112

1 — 06.01.15 — 11:18

&НаКлиенте

Процедура КонтактнаяПерсонаПриИзменении()

    КонтактнаяПерсонаПриИзмененииНаСервере();

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

&НаСервере

Функция КонтактнаяПерсонаПриИзмененииНаСервере()

    Объект.РеквизитСправочникаКонтактнаяПерсона = Объект.КонтактныеЛицаКонтрагентов.Должность;

КонецФункции

   МимохожийОднако

2 — 06.01.15 — 11:23

Забыл про метод реквизит формы в значение в серверной процедуре

   keramik

3 — 06.01.15 — 11:52

(1) Изменил код так, как написали, теперь появляются сообщения: Variable is not defined (Объект) в функции.

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

   keramik

4 — 06.01.15 — 12:05

Записал переменную «Объект» в Ordinary application module так:

Перем Объект Экспорт;

Сообщения об ошибке, что переменная не объявлена пропали. Но теперь при вводе информации в поле «Должность» (у меня процедура поставлена на действие «ПриИзменении в свойстве поля), появляется сообщение Value is not of object type (РеквизитСправочникаКонтактнаяПерсона).

   Maximysis

5 — 06.01.15 — 12:17

почему тема о 7?

   keramik

6 — 06.01.15 — 12:25

Чёрт, я слепой пенчекряк. Вопрос о версии 8.2

   iceman2112

7 — 06.01.15 — 12:26

(4) Зайди во вкладку «Форма», там вкладка «Реквизиты», и есть ли там у тебя реквизит Объект? У тебя его там нет, а какой у тебя тогда реквизит форма связан с документом не ясно, ты ничего не переименовавывал? Вот ДокументОбъект, ты наверно переименовал

   keramik

8 — 06.01.15 — 12:48

Я копаюсь в изменённой до меня программе, затрудняюсь сказать что тут менялось и переименовывалось.

Под вкладкой «Форма» имеется ввиду документ, в котором я делаю изменения? В нём есть группа «Attributes» в которой реквизита «Объект» отсутствует.

Если речь идёт о закладках в самой форме (их 3 штуки у меня «Dialog Box» — внешний вид формы; «Module» — код процедур и функций; «Attributes» — список атрибутов и их тип), то в закладке «Attributes» тоже отсутствует «Объект». Есть только ДокументОбъект, и его тип указан «ДокументОбъект.НазваниеФормы». Я так понимаю, что речь идёт именно про этот реквизит.

   iceman2112

9 — 06.01.15 — 12:52

Ну значит

&НаСервере

Функция КонтактнаяПерсонаПриИзмененииНаСервере()

    ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект.КонтактныеЛицаКонтрагентов.Должность;

КонецФункции

   keramik

10 — 06.01.15 — 13:00

Так всё компилится, но при добавлении информации появляется сообщение «Object field not found (РеквизитСправочникаКонтактнаяПерсона)».

   iceman2112

11 — 06.01.15 — 13:44

Заходи в отладку и смотри. че там есть у тебя что нет

   iceman2112

12 — 06.01.15 — 13:44

Прям поставь точку останова на

ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект.КонтактныеЛицаКонтрагентов.Должность;

И вычисли ДокументОбъект

   keramik

13 — 06.01.15 — 14:26

При выделении мышкой текста ДокументОбъект во всплывающей подсказке отображается номер заявки, которую открыл для изменения.

Если выделять другие части строки, то только для Должность появляется вот такая всплывающая подсказка —> «»

   keramik

14 — 06.01.15 — 14:27

Получается, что значение неправильно передаётся или даже вообще не передаётся.

   palpetrovich

15 — 06.01.15 — 15:18

ниче не понимаю, что не получается? …может тупо «РеквизитСправочникаКонтактнаяПерсона» и «Должность» — разные типы?

короче, так работает :)

&НаСервере

Процедура ВернутьТипЦенНоменклатуры()

    Объект.ТипЦенНоменклатуры = Объект.Контрагент.ТипЦенНоменклатуры;

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

&НаКлиенте

Процедура КонтрагентПриИзменении(Элемент)

    ВернутьТипЦенНоменклатуры();

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

   keramik

16 — 06.01.15 — 15:34

Вот я сейчас полез изучать структуру системы, что откуда берётся и что куда переносится.

Может будет проще добавить новый реквизит к документу и к справочнику и уже его выводить… Буду пробовать.

   iceman2112

17 — 06.01.15 — 16:11

Мужик, почитай про возможности отладки плз. Табло, вычислить выражение и т.п. Очень может тебе.

   iceman2112

18 — 06.01.15 — 16:12

   keramik

19 — 06.01.15 — 16:37

Спасибо, просмотрю.

   keramik

20 — 07.01.15 — 11:42

Как вобще работает эта функция?

&НаСервере

Функция КонтактнаяПерсонаПриИзмененииНаСервере()

    ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект.КонтактныеЛицаКонтрагентов.Должность;

КонецФункции

Я так понимаю, что она на сервере в документе «КонтактныеЛицаКонтрагентов» ищет реквизит «Должность», а затем передаёт это значение в реквизит документа «КонтактнаяПерсона». Правильно?

   keramik

21 — 07.01.15 — 12:41

(7) Вот ещё что. Во вкладке «Реквизиты» документа, где вызываются процедура и функция, есть реквизит ДокументОбъект.

А во вкладке «Реквизиты» справочника, откуда должны браться данные, есть реквизит СправочникОбъект.

Может это влияет на отработку кода?

   keramik

22 — 07.01.15 — 12:49

Судя по отладке, функция ищет значение в том же самом документе, из которого и вызывается. Но надо, чтобы она искала значение в справочнике «КонтактныеЛицаКонтрагентов».

Т.е.

ДокументОбъект <— указан номер созданной заявки    .РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект <—указан тот же самый номер созданной заявки    .КонтактныеЛицаКонтрагентов.Должность

А как указать на другой документ? Чтобы она искала именно в нём.

   Калиостро

23 — 07.01.15 — 13:03

Охренеть. В семерке код из одной строки был бы в перовм же ответе. Еще пяток постов на тыканье в ЖКК и тема спокойно бы умерла.

В снеговике меньше, чем сотней постов, такой вопрос, полагаю, не решится :(

   keramik

24 — 07.01.15 — 15:03

Ребят, подскажите мануал с описанием или пример работающей конфиги, где передаётся значение из справочника в поле документа. Уже голову сломал.

Принцип понятен, что надо взять из одного реквизита и вставить в другой, а как это реализовать и в чём может быть загвоздка непонятно.

   iceman2112

25 — 07.01.15 — 15:31

(24) Тебе скинули примеры, они все рабочие, все остальное это твои заморочки, почту проверь

   Адский плющ

26 — 07.01.15 — 16:01

Автор начал делать цывильно без контекста. В итоге превратили в г-код.

   iceman2112

27 — 07.01.15 — 18:09

(26) ты че тут яйцами тресешь? ты помог автору? нет. Он на сервере то, не может посмотреть что у него есть?

  

keramik

28 — 08.01.15 — 08:59

(27) Спасибо, iceman2112, помог.

В работе с программой 1С при заполнении документов мы часто сталкиваемся с необходимостью ввода одних и тех же реквизитов, например, при работе пользователь использует для подстановки в документы один и тот же склад, определенного контрагента, один вид оказываемой услуги или работы, или одну номенклатурную позицию. Заполняя документы, ему приходится постоянно их подставлять в заполняемые поля вручную. Ввод некоторых значений можно автоматизировать, тем самым ускорив и упростив работу пользователя.

В программах 1С реализован механизм установки значений по умолчанию. Если в программе введена организация, один склад, один расчетный счет, то они автоматически устанавливаются по умолчанию в документ. Рассмотрим настройку значений по умолчанию на примере программы для автоматизации бухгалтерского учета «1С:Бухгалтерия» и «1С:Розница».

Автоматическое заполнение поля документа (реквизиты) на примере «1С: Бухгалтерия» 3.0

В разделе меню «Главное-Персональные настройки», можно задать по умолчанию значения для полей «Основное подразделение» и «Основной склад». Если учет в программе ведется по нескольким организациям, то здесь же доступна установка организации по умолчанию.

Рис.1 Окно программы «1С:Бухгалтерия», раздел меню «Главное»
Рис.1 Окно программы «1С:Бухгалтерия», раздел меню «Главное»
Рис.2 Персональные настройки
Рис.2 Персональные настройки

Если в организации имеется несколько банковских счетов, то соответственно в справочнике «Организации-Банковские счета» мы можем установить, какой из счетов использовать по умолчанию, нажав кнопку «Использовать как основной».

Рис.3 Справочник «Банковские счета»
Рис.3 Справочник «Банковские счета»

Перейдя в справочник «Подразделения», можно также установить отметку на подразделение «Использовать как основное».

Рис.4 Справочник «Подразделения»
Рис.4 Справочник «Подразделения»

Этим настройки по умолчанию для заполнения полей документов в программе и ограничиваются.

Автоматическое заполнение полей в документах «1С:Розница» 2.2

Здесь реализована более широкая настройка значений по умолчанию для пользователя. Настройки пользователя доступны в разделе меню «Администрирование-Пользователи».

Рис.5 Окно программы «1С:Розница 2.2», пункт меню «Администрирование»
Рис.5 Окно программы «1С:Розница 2.2», пункт меню «Администрирование»

По гиперссылке «Пользователи» откроем карточку пользователя и перейдем в раздел «Настройки пользователя».

Рис.6 Карточка пользователя
Рис.6 Карточка пользователя

В таблице «Значения по умолчанию» перечислены реквизиты, которые мы можем установить по умолчанию, выбрав их в соответствующих справочниках.

Рис.7 Установка значений по умолчанию
Рис.7 Установка значений по умолчанию

Аналогичная настройка была доступна также в конфигурациях «1С:Управление торговлей» 10.3, а в 11.3 уже такой возможности нет.

Хитрости автозаполнения 1С

Помимо настроек автозаполнения, в программах 1С есть некоторые хитрости, которые знают эксперты и консультанты 1С, но рядовые пользователи могут просто не обращать на них внимание. Например, в карточке «Номенклатура», при выборе «Вид номенклатуры-Услуга», есть поле «Периодичность услуги».

Рис.8 Элемент справочника номенклатура
Рис.8 Элемент справочника номенклатура

Если мы его заполним, указав периодичность услуги, то она будет указана в содержание документа.

Рис.9 Пример заполнения документа
Рис.9 Пример заполнения документа

Еще одной небольшой хитростью является то, что при заполнении даты документа, мы укажем только число и нажмем кнопку «Enter» на клавиатуре, у нас автоматически проставится текущий месяц и год. Аналогично, если мы укажем дату и месяц (не текущий, любой другой), у нас автоматически добавится текущий год.

Рис.10 Автозаполнение даты в 1С
Рис.10 Автозаполнение даты в 1С

При вводе контрагента, если вы забыли название, достаточно начать вводить первые буквы и программа автоматически начнет поиск. Останется только выбрать из предложенного списка.

Рис.11 Поиск контрагента
Рис.11 Поиск контрагента

Таким образом, зная как настроить автозаполнение полей документов и небольшие хитрости автозаполнения, можно сэкономить немало времени. Если у вас остались вопросы по этой теме, обратитесь к нашим консультантам по сопровождению 1С. Мы с радостью вам поможем!

Теперь в «Бухгалтерии 8» (ред. 3.0) реквизиты контрагента заполняются автоматически – достаточно указать только ИНН. Новая возможность не только экономит время бухгалтера, но и позволяет получить актуальную информацию о контрагенте, мгновенно зарегистрировать ее в программе, тем самым исключив возможные ошибки при вводе.

Содержание

  • Работа с сервисом
  • Видеурок по теме
  • Подключение к сервису

Работа с сервисом

В программе «1С:Бухгалтерия 8», начиная с версии 3.0.35.25, реализована возможность автоматического заполнения реквизитов контрагента сведениями, содержащимся в ЕГРЮЛ/ЕГРИП. Для этого при создании нового контрагента в форме элемента справочника Контрагентынеобходимо заполнить поле ИНН и нажать кнопку Заполнить реквизиты по ИНН или клавишу Enter (рис. 1).

Рис 1Создание из справочника Контрагенты.jpg

Рис. 1. Создание нового контрагента из справочника на основании ИНН

Если ИНН введен корректно и сведения о контрагенте есть в государственном реестре, то реквизиты заполняются автоматически (рис. 2).

Рис 2 Заполненные реквизиты в справочнике.jpg

Рис. 2. Автоматически заполненные реквизиты

При наличии соответствующей информации в ЕГРЮЛ для юридического лица будут заполнены:

· КПП;

· краткое и полное наименование;

· юридический адрес;

· руководитель (записывается в основное контактное лицо);

· телефон.

Для физического лица (предпринимателя) заполняются краткое и полное наименование.

Создать нового контрагента с помощью функции автозаполнения реквизитов можно из любого документа или справочника программы. Для этого в поле ввода контрагента вместо названия можно ввести ИНН. Если в справочнике Контрагенты нет контрагента с таким ИНН, программа предложит создать нового. По кнопке Создать откроется уже заполненная форма нового контрагента (рис. 3).

Рис 3 Создание контрагента из документа.jpg

Рис. 3. Создание контрагента с автозаполнением реквизитов из документа

Для автоматического заполнения реквизитов контрагента необходим доступ в интернет и действующий договор ИТС.

Видеурок по теме

Подключение к сервису

Чтобы пользователь имел доступ к сервису автоматического заполнения реквизитов контрагентов, ему необходимо подключить интернет-поддержку. Подключение интернет-поддержки осуществляется по одноименной гиперссылке из раздела Администрирование (рис. 4а, 4б).

Подключение к интернет поддержке 1.jpg

Рис. 4а. Подключение интернет-поддержки

Подключение к интернет поддержке 2.jpg

Рис. 4б. Подключение интернет-поддержки

Для авторизации в системе интернет-поддержки пользователей используется тот же логин и пароль, что и на сайте users.v8.1c.ru (рис. 5). Пользователь может выполнить регистрацию самостоятельно или обратиться к партнеру фирмы «1С», с которым у организации заключен договор.

Подключение к интернет поддержке 3.jpg

Рис. 5. Подключение интернет-поддержки

После успешной авторизации в системе интернет-поддержки необходимо ввести регистрационный номер программного продукта, и можно пользоваться сервисом автозаполнения!

О том, как заключить договор ИС 1С:ИТС смотрите здесь.

Понравилась статья? Поделить с друзьями:
  • Каким мини бизнесом можно заняться дома женщине
  • Как начать работать в страховой компании онлайн
  • Как аккредитовать строительную компанию в банке
  • Каким мини бизнесом можно заняться дома мужчине
  • Как начать свой швейный бизнес с нуля без денег