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

Автор Тема: Реквизит документа из другого документа  (Прочитано 924 раз)

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

Оффлайн slaviik3

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-30
  • Сайт: 
  • Профессия: Ученик 1С
Всем доброго времени суток! Опишу суть проблему: имею типовую конфигурацию УНФ и мне была поставлена задача при создании документа "Поступление на счет" проверять соответствие договора, указанного в документе "Счет на оплату" и в создаваемом поступлении.

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

Мои догадки: На событии "при изменении" элемента формы счет на оплату, т.е. при непосредственном выборе счета, отправлять в функцию на сервере данные выбранного счета, где запросом уже тащить реквизит документа "Счет на оплату".

Процедура РасшифровкаПлатежаСчетНаОплатуПриИзменении(Элемент)

СтрокаТЧ = "[color=red]Вот здесь как я понимаю надо получить идентификатор документа 'счет на оплату[/color]' ";
Договор = ПолучитьДоговорСчетаНаОплату(СтрокаТЧ);     

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

&НаСервере
Функция ПолучитьДоговорСчетаНаОплату(СтрокаТЧ)


Запрос= новый запрос;
Запрос.УстановитьПараметр("Ссылка", СтрокаТЧ);
Сообщить(СтрокаТЧ);
Запрос.Текст =

"ВЫБРАТЬ
| СчетНаОплату.Договор.Ссылка
|ИЗ
| Документ.СчетНаОплату КАК СчетНаОплату
|ГДЕ
| СчетНаОплату.Ссылка = &Ссылка"   ;

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

Сообщить(Результат);




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





Оффлайн Artjomrgv

  • ***
  • Сообщений: 113
  • РЕПУТАЦИЯ: 12
  • КПД: 11%
  • Регистрация: 2014-02-25
  • Сайт: 
  • Профессия: Консультант 1С

Посмотри это видео, по моему это твой пример, только там справочники.

https://www.youtube.com/watch?v=5lSjBwg-ICk&list=PL73CAD03E4B439C67&index=26

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2640
  • РЕПУТАЦИЯ: 319
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
slaviik3, Все делать запросами это конечно похвально, но до безумств доходить то не надо

Если НЕ  ПолучитьДоговорСчетаНаОплату(СтрокаТЧ) Тогда
Сообщить("Фу на вас!");
КонецЕСлИ;

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

&НаСервере
Функция ПолучитьДоговорСчетаНаОплату(СтрокаТЧ)
Рез = Истина;
ДоговорВСчете = СтрокаТЧ.СчетНаОплату.Договор;
Возврат ДоговорВПоступлении = ДоговорВСчете
КонецФункция

Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Посмотри это видео, по моему это твой пример, только там справочники.

https://www.youtube.com/watch?v=5lSjBwg-ICk&list=PL73CAD03E4B439C67&index=26
Не учите людей плохому. Это пример плохого кода. Правильно - заполнять реквизиты в коде самой открываемой формы.

Все делать запросами это конечно похвально, но до безумств доходить то не надо
Не вижу ничего безумного. Если ТСу не лень писать запросы - это ему точно зачтется.

Оффлайн slaviik3

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-30
  • Сайт: 
  • Профессия: Ученик 1С
slaviik3, Все делать запросами это конечно похвально, но до безумств доходить то не надо

Если НЕ  ПолучитьДоговорСчетаНаОплату(СтрокаТЧ) Тогда
Сообщить("Фу на вас!");
КонецЕСлИ;

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

&НаСервере
Функция ПолучитьДоговорСчетаНаОплату(СтрокаТЧ)
Рез = Истина;
ДоговорВСчете = СтрокаТЧ.СчетНаОплату.Договор;
Возврат ДоговорВПоступлении = ДоговорВСчете
КонецФункция




Спасибо за ответ.

Непонятны следующие вещи:
Что я должен передать в функцию ПолучитьДоговорСчетаНаОплату(СтрокаТЧ)?
Я передаю текущие данные
СтрокаТЧ = Элементы.РасшифровкаПлатежа.ТекущиеДанные;

Получаю вот такую ошибку

Цитировать
{Документ.ПоступлениеНаСчет.Форма.ФормаДокумента.Форма(2215)}: Ошибка при вызове метода контекста (ПолучитьДоговорСчетаНаОплату)
Если НЕ  ПолучитьДоговорСчетаНаОплату(СтрокаТЧ) Тогда
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
   форма: Элемент
   имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'


Вот полностью код:


Процедура РасшифровкаПлатежаСчетНаОплатуПриИзменении(Элемент)


СтрокаТЧ = Элементы.РасшифровкаПлатежа.ТекущиеДанные;

Если НЕ  ПолучитьДоговорСчетаНаОплату(СтрокаТЧ) Тогда
    Сообщить("Фу на вас!");
КонецЕСли;


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

&НаСервере
Функция ПолучитьДоговорСчетаНаОплату(СтрокаТЧ)

Рез= истина;
ДоговорВСчете = СтрокаТЧ.СчетНаОплату.Договор;
ДоговорВПоступлении = СтрокаТЧ.Договор;
Возврат ДоговорВПоступлении = ДоговорВСчете;
КонецФункции




Оффлайн Kironten

  • *****
  • Сообщений: 766
  • РЕПУТАЦИЯ: 164
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Если НЕ  ПолучитьДоговорСчетаНаОплату(СтрокаТЧ) Тогда
    Сообщить("Фу на вас!");
КонецЕСли;   
   
   
КонецПроцедуры

&НаСервере
Функция ПолучитьДоговорСчетаНаОплату(СтрокаТЧ)

Рез= истина;
ДоговорВСчете = СтрокаТЧ.СчетНаОплату.Договор;
ДоговорВПоступлении = СтрокаТЧ.Договор;
Возврат ДоговорВПоступлении = ДоговорВСчете;   
КонецФункции

У вас условие на булево, а возвращаете вы договор.

ДоговорПоступления = ПолучитьДоговорСчетаНаОплату(СтрокаТЧ);
Если ДоговорПоступления = Справочники.Договора.ПустаяСсылка() Тогда // ну или как там у вас справочник договора называется.
    Сообщить("Фу на вас!");
КонецЕСли;
Добавлено: 02 Ноя 2015, 12:36

А не, неправильно прочитал.

Ну попробуй не текущие данные в функцию передавать, а пару параметров: Договор, и счет на оплату.
В функции запрос к договору счета на оплату, и сравнение значений договоров.

Последний раз редактировалось: Kironten; 02 Ноя 2015, 12:36. Причина: Объединение сообщений


Теги:
 


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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
alex0402
124 Сообщений
MuI_I_Ika MuI_I_Ika
53 Сообщений
Norfolk
52 Сообщений
LexaK
47 Сообщений
AsadRoman
20 Сообщений
друган
20 Сообщений
alexandr_ll
20 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal