Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 03:31
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Автоматическое заполнение данных документа из справочника?  (Прочитано 11129 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн |R|U|D|E|N

  • ***
  • Сообщений: 217
  • РЕПУТАЦИЯ: 3
  • КПД: 1%
  • Регистрация: 2011-01-09
  • Компания: Virtual-Kernel | KVM | Xen
  • Профессия: Разработчик 1С
Добрый день.

У меня есть сложная(для меня по крайней мере) задача.

У меня есть документ "АктПриемаОборудования". В этом документе есть реквизит "Контрагент" и несколько дополнительных реквизитов(Адрес, Телефон) относящихся к этому Контрагенту. Эти дополнительные реквизиты есть в крточке этого контрагента в соответствующем справочнике.

Так вот. Я хочу, чтоб, в приведенном выше документе, при выборе Контрагента из справочника, остальные данные(Адрес, телефон)заполнялись автоматически из карточки контрагента.

Режим запуска "Управляемое приложение". Подскажите пож. как это сделать?


С уважением Александр.



Оффлайн |R|U|D|E|N

  • ***
  • Сообщений: 217
  • РЕПУТАЦИЯ: 3
  • КПД: 1%
  • Регистрация: 2011-01-09
  • Компания: Virtual-Kernel | KVM | Xen
  • Профессия: Разработчик 1С
Естественно. Обработчик та я создал. Но как найти в справочнике "Контрагенты" указанного контрагента и получить значение его реквизитов не знаю....

Оффлайн |R|U|D|E|N

  • ***
  • Сообщений: 217
  • РЕПУТАЦИЯ: 3
  • КПД: 1%
  • Регистрация: 2011-01-09
  • Компания: Virtual-Kernel | KVM | Xen
  • Профессия: Разработчик 1С
Я понимаю)) Я не знаю сам синтаксис. Не знаю как это сделать)

Спасибо вам sergejK74. Думаю, это то что надо!







Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Получать реквизиты реквизита (простите за каламбур) на клиенте - только через серверную функцию.

В ПриИзменении пишете

СтруктураДанныхКонтрагента = ПолучитьДанныеКонтрагента(Объект.Контрагент);
Телефон = СтруктураДанныхКонтрагента.Телефон;
Адрес = СтруктураДанныхКонтрагента.Адрес;

И здесь же в модуле создаете серверную функцию

&НаСервереБезКонтекста
Функция ПолучитьДанныеКонтрагента(Контрагент)
СтруктураДанных = Новый Структура("Телефон, Адрес");
ЗаполнитьЗначенияСвойств(СтруктураДанных, Контрагент);
Возврат СтруктураДанных;
КонецФункции
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн |R|U|D|E|N

  • ***
  • Сообщений: 217
  • РЕПУТАЦИЯ: 3
  • КПД: 1%
  • Регистрация: 2011-01-09
  • Компания: Virtual-Kernel | KVM | Xen
  • Профессия: Разработчик 1С
Друзья. Спасибо Вам огромное за то, что завалили меня ответами:)!

Вариант sergejK74 мне понравился. По этому я разместил в ОбщемМодуле следующий код:

Функция ПолучитьПараметрыКонтагента(Контрагент) Экспорт
   
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Контрагенты.Адрес,
        |    Контрагенты.Телефон,
| Контрагенты.ТипКонтрагента,
|    Контрагенты.ВидКонтрагента,
|    Контрагенты.VIP,
|    Контрагенты.VIPПриоритет,
|    Контрагенты.НеГудКлиент,
|    Контрагенты.СтатусНеГудКлиента,
| Контрагенты.ДополнительнаяИнформация
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |    Контрагенты.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка", Контрагент);

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    СписокПараметров = Новый Структура;
   
    СписокПараметров.Вставить("Адрес");
    СписокПараметров.Вставить("Телефон");
    СписокПараметров.Вставить("ТипКонтрагента");
СписокПараметров.Вставить("ВидКонтрагента");
СписокПараметров.Вставить("VIP");
    СписокПараметров.Вставить("VIPПриоритет");
    СписокПараметров.Вставить("НеГудКлиент");
    СписокПараметров.Вставить("СтатусНеГудКлиента");
СписокПараметров.Вставить("ДополнительнаяИнформация");


Если ВыборкаДетальныеЗаписи.Следующий() Тогда
       
    СписокПараметров.Адрес = ВыборкаДетальныеЗаписи.Адрес;
    СписокПараметров.Телефон = ВыборкаДетальныеЗаписи.Телефон;
    СписокПараметров.ТипКонтрагента = ВыборкаДетальныеЗаписи.ТипКонтрагента;
СписокПараметров.ВидКонтрагента = ВыборкаДетальныеЗаписи.ВидКонтрагента;
СписокПараметров.VIP = ВыборкаДетальныеЗаписи.VIP;
СписокПараметров.VIPПриоритет = ВыборкаДетальныеЗаписи.VIPПриоритет;
СписокПараметров.НеГудКлиент = ВыборкаДетальныеЗаписи.НеГудКлиент;
СписокПараметров.СтатусНеГудКлиента = ВыборкаДетальныеЗаписи.СтатусНеГудКлиента;
СписокПараметров.ДополнительнаяИнформация = ВыборкаДетальныеЗаписи.ДополнительнаяИнформация;
       
    КонецЕсли;

    Возврат СписокПараметров;   

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


Ну и там где надо, в формах создал обработчики:

Процедура КонтрагентПриИзменении(Элемент)
    Парам = ПодсчетыИПодстановки.ПолучитьПараметрыКонтагента(Объект.Контрагент);
Объект.КонтактноеИнфо = Парам.Адрес +" " + "Телефон:" + Парам.Телефон;
Объект.ТипКонтрагента = Парам.ТипКонтрагента;
Объект.ВидКонтрагента = Парам.ВидКонтрагента;
Объект.НеГудКлиент = Парам.НеГудКлиент;
Объект.СтатусНеГудКлиента = Парам.СтатусНеГудКлиента;
Объект.ДопИнфо = Парам.ДополнительнаяИнформация;
Объект.VIP = Парам.VIP;
Объект.VIPПриоритет = Парам.VIPПриоритет;
КонецПроцедуры


Подобного рода создал еще пару Общих функций для других реквизитов и теперь все подстовляется где надо и не надо  :D


Всем спасибо. Вы мне очень помогли!



Оффлайн sawogle

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-07-24
  • Сайт: 
  • Профессия: Ученик 1С
Получать реквизиты реквизита (простите за каламбур) на клиенте - только через серверную функцию.

В ПриИзменении пишете

СтруктураДанныхКонтрагента = ПолучитьДанныеКонтрагента(Объект.Контрагент);
Телефон = СтруктураДанныхКонтрагента.Телефон;
Адрес = СтруктураДанныхКонтрагента.Адрес;

И здесь же в модуле создаете серверную функцию

&НаСервереБезКонтекста
Функция ПолучитьДанныеКонтрагента(Контрагент)
СтруктураДанных = Новый Структура("Телефон, Адрес");
ЗаполнитьЗначенияСвойств(СтруктураДанных, Контрагент);
Возврат СтруктураДанных;
КонецФункции

Здравствуйте
При этой функции у меня вылезает ошибка

Добавлено: 14 Окт 2017, 19:20

Друзья. Спасибо Вам огромное за то, что завалили меня ответами:)!

Вариант sergejK74 мне понравился. По этому я разместил в ОбщемМодуле следующий код:

Функция ПолучитьПараметрыКонтагента(Контрагент) Экспорт
   
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Контрагенты.Адрес,
        |    Контрагенты.Телефон,
| Контрагенты.ТипКонтрагента,
|    Контрагенты.ВидКонтрагента,
|    Контрагенты.VIP,
|    Контрагенты.VIPПриоритет,
|    Контрагенты.НеГудКлиент,
|    Контрагенты.СтатусНеГудКлиента,
| Контрагенты.ДополнительнаяИнформация
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |    Контрагенты.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка", Контрагент);

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    СписокПараметров = Новый Структура;
   
    СписокПараметров.Вставить("Адрес");
    СписокПараметров.Вставить("Телефон");
    СписокПараметров.Вставить("ТипКонтрагента");
СписокПараметров.Вставить("ВидКонтрагента");
СписокПараметров.Вставить("VIP");
    СписокПараметров.Вставить("VIPПриоритет");
    СписокПараметров.Вставить("НеГудКлиент");
    СписокПараметров.Вставить("СтатусНеГудКлиента");
СписокПараметров.Вставить("ДополнительнаяИнформация");


Если ВыборкаДетальныеЗаписи.Следующий() Тогда
       
    СписокПараметров.Адрес = ВыборкаДетальныеЗаписи.Адрес;
    СписокПараметров.Телефон = ВыборкаДетальныеЗаписи.Телефон;
    СписокПараметров.ТипКонтрагента = ВыборкаДетальныеЗаписи.ТипКонтрагента;
СписокПараметров.ВидКонтрагента = ВыборкаДетальныеЗаписи.ВидКонтрагента;
СписокПараметров.VIP = ВыборкаДетальныеЗаписи.VIP;
СписокПараметров.VIPПриоритет = ВыборкаДетальныеЗаписи.VIPПриоритет;
СписокПараметров.НеГудКлиент = ВыборкаДетальныеЗаписи.НеГудКлиент;
СписокПараметров.СтатусНеГудКлиента = ВыборкаДетальныеЗаписи.СтатусНеГудКлиента;
СписокПараметров.ДополнительнаяИнформация = ВыборкаДетальныеЗаписи.ДополнительнаяИнформация;
       
    КонецЕсли;

    Возврат СписокПараметров;   

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


Ну и там где надо, в формах создал обработчики:

Процедура КонтрагентПриИзменении(Элемент)
    Парам = ПодсчетыИПодстановки.ПолучитьПараметрыКонтагента(Объект.Контрагент);
Объект.КонтактноеИнфо = Парам.Адрес +" " + "Телефон:" + Парам.Телефон;
Объект.ТипКонтрагента = Парам.ТипКонтрагента;
Объект.ВидКонтрагента = Парам.ВидКонтрагента;
Объект.НеГудКлиент = Парам.НеГудКлиент;
Объект.СтатусНеГудКлиента = Парам.СтатусНеГудКлиента;
Объект.ДопИнфо = Парам.ДополнительнаяИнформация;
Объект.VIP = Парам.VIP;
Объект.VIPПриоритет = Парам.VIPПриоритет;
КонецПроцедуры


Подобного рода создал еще пару Общих функций для других реквизитов и теперь все подстовляется где надо и не надо  :D


Всем спасибо. Вы мне очень помогли!
Еще раз здравствуйте!!!!
НЕ получается. Помогите пожалуйста Заранее Спасибо

Последний раз редактировалось: sawogle; 14 Окт 2017, 19:20. Причина: Объединение сообщений

Оффлайн IL2016

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 3
  • КПД: 17%
  • Регистрация: 2016-02-20
  • Сайт: 
  • Профессия: Ученик 1С
по первому скрину
у Вас возможно опечатка. Скобки уберите в строке  Возврат СтруктураДанных
может поможет.
а вообще что хотите сделать? может проще?

Оффлайн sawogle

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-07-24
  • Сайт: 
  • Профессия: Ученик 1С
по первому скрину
у Вас возможно опечатка. Скобки уберите в строке  Возврат СтруктураДанных
может поможет.
а вообще что хотите сделать? может проще?
Хочу чтобы из Справочника "Контрагенты" реквизиты подставлялись в Документ, но не получается :dfbsdfbsdf:
Изменил, но опять не получилось

Оффлайн IL2016

  • *
  • Сообщений: 18
  • РЕПУТАЦИЯ: 3
  • КПД: 17%
  • Регистрация: 2016-02-20
  • Сайт: 
  • Профессия: Ученик 1С
это же просто. Например, получить адрес контрагента из справочника Контрагенты и ставить в документ при изменении контрагента.

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    Объект.Адрес = ПолучитьАдресКонтрагента(Объект.Контрагент);
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьАдресКонтрагента(Контрагент)
    Возврат Контрагент.Адрес;
КонецФункции

для получения всех остальных данных контрагента прописывайте аналогичные функции

Оффлайн sawogle

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-07-24
  • Сайт: 
  • Профессия: Ученик 1С
это же просто. Например, получить адрес контрагента из справочника Контрагенты и ставить в документ при изменении контрагента.

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    Объект.Адрес = ПолучитьАдресКонтрагента(Объект.Контрагент);
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьАдресКонтрагента(Контрагент)
    Возврат Контрагент.Адрес;
КонецФункции

для получения всех остальных данных контрагента прописывайте аналогичные функции
Спасибо, сейчас попробую
Попробовал :fdbsdfbsd:


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4473
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7742
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

Автор yunovoРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4779
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

Автор ppkmliteРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 8502
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz
Фамилия руководителя в печатных формах документа "Акт сверки", "Акт об оказании"

Автор MKozzlikРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7341
Последний ответ 03 Фев 2012, 17:27
от Dinah

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
178 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 172
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal