Я отвечу так:
Глобальный контекст (Global context)
ЗаполнитьЗначенияСвойств (FillPropertyValues)
Синтаксис:
ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>, <СписокСвойств>, <ИсключаяСвойства>)
Параметры:
<Приемник> (обязательный)
Тип: Произвольный.
Значение, чьи свойства будут заполнены значениями соответствующих свойств <Источника>.
<Источник> (обязательный)
Тип: Произвольный.
Значения свойств данного объекта будут установлены в соответствующие свойства <Приемника>.
<СписокСвойств> (необязательный)
Тип: Строка.
Список имен свойств, разделенный запятыми, которые необходимо заполнить.
Если свойства не указаны, то копируются только те, которые представлены и в <Источнике> и в <Приемнике>.
Если свойства указаны, то они обязательно должны присутствовать в обоих объектах.
Если в <Источнике> или <Приемнике> заданное свойство отсутствует, то будет вызвано исключение.
<ИсключаяСвойства> (необязательный)
Тип: Строка.
Список имен свойств, разделенный запятыми, которые необходимо исключить из заполнения.
Описание:
Копирует значения свойств <Источника> в свойства <Приемника>. Сопоставление производится по именам свойств.
Если указаны копируемые свойства, то в заполнении участвуют только они, параметр <ИсключаяСвойства> игнорируется.
В противном случае, если указан параметр <ИсключаяСвойства>, то свойства перечисленные в нем, исключаются из обработки.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Добавлено через 12 минут
1C | ||
|
Добавлено через 3 минуты
Забыл дописать:
Параметром только передавать нельзя…
Либо так
1C | ||
|
либо так
1C | ||
|
Обязательно с директивой &наСЕРВЕРЕ
06.01.15 — 09:04
Добрый день. Задача — заполнить в документе поле «Должность» данными поля «Должность» из справочника «КонтактныеЛицаКонтрагентов» так, чтобы при выборе контрагента автоматически поле «Должность» менялось на соответствующее.
В модуле ФормыДокумента написал следующий код:
&НаКлиенте
Процедура КонтактнаяПерсонаПриИзменении()
ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере(ДокументОбъект.КонтактныеЛицаКонтрагентов);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере(КонтактныеЛицаКонтрагентов)
Возврат КонтактныеЛицаКонтрагентов.Должность;
КонецФункции
Но при запуске соответствующей формы, появляется сообщение о том, что функция ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере не определена.
Если прописать перед функцией просто &НаСервере, то такой ошибки нет, но при выборе Контрагента появляется сообщение Object field not found (РеквизитСправочникаКонтактнаяПерсона).
1 — 06.01.15 — 11:18
&НаКлиенте
Процедура КонтактнаяПерсонаПриИзменении()
КонтактнаяПерсонаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Функция КонтактнаяПерсонаПриИзмененииНаСервере()
Объект.РеквизитСправочникаКонтактнаяПерсона = Объект.КонтактныеЛицаКонтрагентов.Должность;
КонецФункции
2 — 06.01.15 — 11:23
Забыл про метод реквизит формы в значение в серверной процедуре
3 — 06.01.15 — 11:52
(1) Изменил код так, как написали, теперь появляются сообщения: Variable is not defined (Объект) в функции.
А есть разница в передачи значений из справочника в поле документа или код одинаковый как для справочника, так и для формы документа?
4 — 06.01.15 — 12:05
Записал переменную «Объект» в Ordinary application module так:
Перем Объект Экспорт;
Сообщения об ошибке, что переменная не объявлена пропали. Но теперь при вводе информации в поле «Должность» (у меня процедура поставлена на действие «ПриИзменении в свойстве поля), появляется сообщение Value is not of object type (РеквизитСправочникаКонтактнаяПерсона).
5 — 06.01.15 — 12:17
почему тема о 7?
6 — 06.01.15 — 12:25
Чёрт, я слепой пенчекряк. Вопрос о версии 8.2
7 — 06.01.15 — 12:26
(4) Зайди во вкладку «Форма», там вкладка «Реквизиты», и есть ли там у тебя реквизит Объект? У тебя его там нет, а какой у тебя тогда реквизит форма связан с документом не ясно, ты ничего не переименовавывал? Вот ДокументОбъект, ты наверно переименовал
8 — 06.01.15 — 12:48
Я копаюсь в изменённой до меня программе, затрудняюсь сказать что тут менялось и переименовывалось.
Под вкладкой «Форма» имеется ввиду документ, в котором я делаю изменения? В нём есть группа «Attributes» в которой реквизита «Объект» отсутствует.
Если речь идёт о закладках в самой форме (их 3 штуки у меня «Dialog Box» — внешний вид формы; «Module» — код процедур и функций; «Attributes» — список атрибутов и их тип), то в закладке «Attributes» тоже отсутствует «Объект». Есть только ДокументОбъект, и его тип указан «ДокументОбъект.НазваниеФормы». Я так понимаю, что речь идёт именно про этот реквизит.
9 — 06.01.15 — 12:52
Ну значит
&НаСервере
Функция КонтактнаяПерсонаПриИзмененииНаСервере()
ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект.КонтактныеЛицаКонтрагентов.Должность;
КонецФункции
10 — 06.01.15 — 13:00
Так всё компилится, но при добавлении информации появляется сообщение «Object field not found (РеквизитСправочникаКонтактнаяПерсона)».
11 — 06.01.15 — 13:44
Заходи в отладку и смотри. че там есть у тебя что нет
12 — 06.01.15 — 13:44
Прям поставь точку останова на
ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект.КонтактныеЛицаКонтрагентов.Должность;
И вычисли ДокументОбъект
13 — 06.01.15 — 14:26
При выделении мышкой текста ДокументОбъект во всплывающей подсказке отображается номер заявки, которую открыл для изменения.
Если выделять другие части строки, то только для Должность появляется вот такая всплывающая подсказка —> «»
14 — 06.01.15 — 14:27
Получается, что значение неправильно передаётся или даже вообще не передаётся.
15 — 06.01.15 — 15:18
ниче не понимаю, что не получается? …может тупо «РеквизитСправочникаКонтактнаяПерсона» и «Должность» — разные типы?
короче, так работает
&НаСервере
Процедура ВернутьТипЦенНоменклатуры()
Объект.ТипЦенНоменклатуры = Объект.Контрагент.ТипЦенНоменклатуры;
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
ВернутьТипЦенНоменклатуры();
КонецПроцедуры
16 — 06.01.15 — 15:34
Вот я сейчас полез изучать структуру системы, что откуда берётся и что куда переносится.
Может будет проще добавить новый реквизит к документу и к справочнику и уже его выводить… Буду пробовать.
17 — 06.01.15 — 16:11
Мужик, почитай про возможности отладки плз. Табло, вычислить выражение и т.п. Очень может тебе.
18 — 06.01.15 — 16:12
19 — 06.01.15 — 16:37
Спасибо, просмотрю.
20 — 07.01.15 — 11:42
Как вобще работает эта функция?
&НаСервере
Функция КонтактнаяПерсонаПриИзмененииНаСервере()
ДокументОбъект.РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект.КонтактныеЛицаКонтрагентов.Должность;
КонецФункции
Я так понимаю, что она на сервере в документе «КонтактныеЛицаКонтрагентов» ищет реквизит «Должность», а затем передаёт это значение в реквизит документа «КонтактнаяПерсона». Правильно?
21 — 07.01.15 — 12:41
(7) Вот ещё что. Во вкладке «Реквизиты» документа, где вызываются процедура и функция, есть реквизит ДокументОбъект.
А во вкладке «Реквизиты» справочника, откуда должны браться данные, есть реквизит СправочникОбъект.
Может это влияет на отработку кода?
22 — 07.01.15 — 12:49
Судя по отладке, функция ищет значение в том же самом документе, из которого и вызывается. Но надо, чтобы она искала значение в справочнике «КонтактныеЛицаКонтрагентов».
Т.е.
ДокументОбъект <— указан номер созданной заявки .РеквизитСправочникаКонтактнаяПерсона = ДокументОбъект <—указан тот же самый номер созданной заявки .КонтактныеЛицаКонтрагентов.Должность
А как указать на другой документ? Чтобы она искала именно в нём.
23 — 07.01.15 — 13:03
Охренеть. В семерке код из одной строки был бы в перовм же ответе. Еще пяток постов на тыканье в ЖКК и тема спокойно бы умерла.
В снеговике меньше, чем сотней постов, такой вопрос, полагаю, не решится
24 — 07.01.15 — 15:03
Ребят, подскажите мануал с описанием или пример работающей конфиги, где передаётся значение из справочника в поле документа. Уже голову сломал.
Принцип понятен, что надо взять из одного реквизита и вставить в другой, а как это реализовать и в чём может быть загвоздка непонятно.
25 — 07.01.15 — 15:31
(24) Тебе скинули примеры, они все рабочие, все остальное это твои заморочки, почту проверь
26 — 07.01.15 — 16:01
Автор начал делать цывильно без контекста. В итоге превратили в г-код.
27 — 07.01.15 — 18:09
(26) ты че тут яйцами тресешь? ты помог автору? нет. Он на сервере то, не может посмотреть что у него есть?
keramik
28 — 08.01.15 — 08:59
(27) Спасибо, iceman2112, помог.
В работе с программой 1С при заполнении документов мы часто сталкиваемся с необходимостью ввода одних и тех же реквизитов, например, при работе пользователь использует для подстановки в документы один и тот же склад, определенного контрагента, один вид оказываемой услуги или работы, или одну номенклатурную позицию. Заполняя документы, ему приходится постоянно их подставлять в заполняемые поля вручную. Ввод некоторых значений можно автоматизировать, тем самым ускорив и упростив работу пользователя.
В программах 1С реализован механизм установки значений по умолчанию. Если в программе введена организация, один склад, один расчетный счет, то они автоматически устанавливаются по умолчанию в документ. Рассмотрим настройку значений по умолчанию на примере программы для автоматизации бухгалтерского учета «1С:Бухгалтерия» и «1С:Розница».
Автоматическое заполнение поля документа (реквизиты) на примере «1С: Бухгалтерия» 3.0
В разделе меню «Главное-Персональные настройки», можно задать по умолчанию значения для полей «Основное подразделение» и «Основной склад». Если учет в программе ведется по нескольким организациям, то здесь же доступна установка организации по умолчанию.
Если в организации имеется несколько банковских счетов, то соответственно в справочнике «Организации-Банковские счета» мы можем установить, какой из счетов использовать по умолчанию, нажав кнопку «Использовать как основной».
Перейдя в справочник «Подразделения», можно также установить отметку на подразделение «Использовать как основное».
Этим настройки по умолчанию для заполнения полей документов в программе и ограничиваются.
Автоматическое заполнение полей в документах «1С:Розница» 2.2
Здесь реализована более широкая настройка значений по умолчанию для пользователя. Настройки пользователя доступны в разделе меню «Администрирование-Пользователи».
По гиперссылке «Пользователи» откроем карточку пользователя и перейдем в раздел «Настройки пользователя».
В таблице «Значения по умолчанию» перечислены реквизиты, которые мы можем установить по умолчанию, выбрав их в соответствующих справочниках.
Аналогичная настройка была доступна также в конфигурациях «1С:Управление торговлей» 10.3, а в 11.3 уже такой возможности нет.
Хитрости автозаполнения 1С
Помимо настроек автозаполнения, в программах 1С есть некоторые хитрости, которые знают эксперты и консультанты 1С, но рядовые пользователи могут просто не обращать на них внимание. Например, в карточке «Номенклатура», при выборе «Вид номенклатуры-Услуга», есть поле «Периодичность услуги».
Если мы его заполним, указав периодичность услуги, то она будет указана в содержание документа.
Еще одной небольшой хитростью является то, что при заполнении даты документа, мы укажем только число и нажмем кнопку «Enter» на клавиатуре, у нас автоматически проставится текущий месяц и год. Аналогично, если мы укажем дату и месяц (не текущий, любой другой), у нас автоматически добавится текущий год.
При вводе контрагента, если вы забыли название, достаточно начать вводить первые буквы и программа автоматически начнет поиск. Останется только выбрать из предложенного списка.
Таким образом, зная как настроить автозаполнение полей документов и небольшие хитрости автозаполнения, можно сэкономить немало времени. Если у вас остались вопросы по этой теме, обратитесь к нашим консультантам по сопровождению 1С. Мы с радостью вам поможем!
Теперь в «Бухгалтерии 8» (ред. 3.0) реквизиты контрагента заполняются автоматически – достаточно указать только ИНН. Новая возможность не только экономит время бухгалтера, но и позволяет получить актуальную информацию о контрагенте, мгновенно зарегистрировать ее в программе, тем самым исключив возможные ошибки при вводе.
Содержание
- Работа с сервисом
- Видеурок по теме
- Подключение к сервису
Работа с сервисом
В программе «1С:Бухгалтерия 8», начиная с версии 3.0.35.25, реализована возможность автоматического заполнения реквизитов контрагента сведениями, содержащимся в ЕГРЮЛ/ЕГРИП. Для этого при создании нового контрагента в форме элемента справочника Контрагентынеобходимо заполнить поле ИНН и нажать кнопку Заполнить реквизиты по ИНН или клавишу Enter (рис. 1).
Рис. 1. Создание нового контрагента из справочника на основании ИНН
Если ИНН введен корректно и сведения о контрагенте есть в государственном реестре, то реквизиты заполняются автоматически (рис. 2).
Рис. 2. Автоматически заполненные реквизиты
При наличии соответствующей информации в ЕГРЮЛ для юридического лица будут заполнены:
· КПП;
· краткое и полное наименование;
· юридический адрес;
· руководитель (записывается в основное контактное лицо);
· телефон.
Для физического лица (предпринимателя) заполняются краткое и полное наименование.
Создать нового контрагента с помощью функции автозаполнения реквизитов можно из любого документа или справочника программы. Для этого в поле ввода контрагента вместо названия можно ввести ИНН. Если в справочнике Контрагенты нет контрагента с таким ИНН, программа предложит создать нового. По кнопке Создать откроется уже заполненная форма нового контрагента (рис. 3).
Рис. 3. Создание контрагента с автозаполнением реквизитов из документа
Для автоматического заполнения реквизитов контрагента необходим доступ в интернет и действующий договор ИТС.
Видеурок по теме
Подключение к сервису
Чтобы пользователь имел доступ к сервису автоматического заполнения реквизитов контрагентов, ему необходимо подключить интернет-поддержку. Подключение интернет-поддержки осуществляется по одноименной гиперссылке из раздела Администрирование (рис. 4а, 4б).
Рис. 4а. Подключение интернет-поддержки
Рис. 4б. Подключение интернет-поддержки
Для авторизации в системе интернет-поддержки пользователей используется тот же логин и пароль, что и на сайте users.v8.1c.ru (рис. 5). Пользователь может выполнить регистрацию самостоятельно или обратиться к партнеру фирмы «1С», с которым у организации заключен договор.
Рис. 5. Подключение интернет-поддержки
После успешной авторизации в системе интернет-поддержки необходимо ввести регистрационный номер программного продукта, и можно пользоваться сервисом автозаполнения!
О том, как заключить договор ИС 1С:ИТС смотрите здесь.