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

Автор Тема: Помогите написать обработку  (Прочитано 15444 раз)

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

Оффлайн Pavel779

  • ***
  • Сообщений: 145
  • РЕПУТАЦИЯ: 3
  • КПД: 2%
  • Регистрация: 2011-11-01
  • Сайт: 
  • Профессия: Консультант 1С
Здраствуйте помогите разобраться!

Поставил себе задачу написать обработку. Задача такова:
Надо чтоб из документа поступления обработка выдавала сообщение с "Наименованием" поставщика в этом документе.



Что я с делал:

Создал обработку

1.Сделал реквизит "Документ" Тип=ДокументСсылка.ПоступлениеТоваров
2.Сделал команду "ИмяКонтрагента"
3.Процедура


&НаКлиенте
Процедура ИмяКонтрагента(Команда)
        ИмяКонтрагентаНаСервере(Документ);
КонецПроцедуры



&НаСервереБезКонтекста
Процедура ИмяКонтрагентаНаСервере(Документ)


Выборка = Документы.ПоступлениеТоваров.Выбрать(Документ);

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

Пробую запустить, чтоб убедиться, что переменная "Выборка" содержит мой документ.

А программа выкидывает мне ошибку:

{Обработка.Обработка1.Форма.Форма.Форма(13)}: Ошибка при вызове метода контекста (Выбрать)
Выборка = Документы.ПоступлениеТоваров.Выбрать(Документ);
по причине:
Несоответствие типов (параметр номер '1')

ПОМОГИТЕ РАЗОБРАТЬСЯ!!!


Оффлайн sadovod

  • ****
  • Сообщений: 289
  • РЕПУТАЦИЯ: 53
  • КПД: 18%
  • Регистрация: 2012-02-19
  • Сайт: 
  • Профессия: Программист 1С
Неправильно задан параметр.
Цитировать
Синтаксис-помощник:
Документы.<ИмяДокумента>.Выбрать(<ДатаНачала>, <ДатаОкончания>, <Отбор>, <Порядок>)
Вам для получения Поставщика не нужно использовать метод Выбрать(), ведь ссылка на Документ у вас уже есть, значит можно так (если у документа соответствующий реквизит называется 'Контрагент'):

&НаСервереБезКонтекста
Функция ИмяКонтрагентаНаСервере(Документ)
   Возврат Документ.Контрагент;
КонецФункции

PS. Метод Выбрать() выбирает целую кучу (Выборку) Документов, эту выборку можно ограничить либо периодом, либо отбором (см. синтакс-помощник), но для данной задачи этот метод не подходит.

Оффлайн Pavel779

  • ***
  • Сообщений: 145
  • РЕПУТАЦИЯ: 3
  • КПД: 2%
  • Регистрация: 2011-11-01
  • Сайт: 
  • Профессия: Консультант 1С
А почему я немогу на прямую обратиться к реквизиту:

ИмяКонтрагента = Документы.ПоступлениеТоваров.Контагент

Оффлайн sadovod

  • ****
  • Сообщений: 289
  • РЕПУТАЦИЯ: 53
  • КПД: 18%
  • Регистрация: 2012-02-19
  • Сайт: 
  • Профессия: Программист 1С
А почему я немогу на прямую обратиться к реквизиту:

ИмяКонтрагента = Документы.ПоступлениеТоваров.Контагент
Можете, но только в толстом клиенте, даже несмотря на то, что при компиляции система будет ругаться на ошибку, можно запустить пользовательский  режим в толстом клиенте и конструкция ПоступлениеТоваров.Ссылка.Контрагент будет доступна.
Но только имейте ввиду, что "Документы.ПоступлениеТоваров" - это не ссылка на Документ (в 1С это такой специальный тип данных - ДокументМенеджер), поэтому прежде чем обратиться к реквизиту Документа (к Контрагенту, например) нужно сначала получить ссылку на какой-либо документ, например с помощью метода НайтиПоКоду() или с помощью выбора из списка на форме, как вы сделали...

Оффлайн sadovod

  • ****
  • Сообщений: 289
  • РЕПУТАЦИЯ: 53
  • КПД: 18%
  • Регистрация: 2012-02-19
  • Сайт: 
  • Профессия: Программист 1С
Ой, только не 'НайтиПоКоду', а 'НайтиПоНомеру'   

Оффлайн Pavel779

  • ***
  • Сообщений: 145
  • РЕПУТАЦИЯ: 3
  • КПД: 2%
  • Регистрация: 2011-11-01
  • Сайт: 
  • Профессия: Консультант 1С
А можете написать, подробно.
Как в модуле документа обратиться к его реквизиту и этот реквизит получить в переменную.

И еще как здесь вывести имя Контрагента в сообщение

&НаСервереБезКонтекста
Функция ИмяКонтрагентаНаСервере(Документ)
   Возврат Документ.Контрагент;
КонецФункции

Оффлайн Андрей Федотов

  • ***
  • Сообщений: 212
  • РЕПУТАЦИЯ: 36
  • КПД: 17%
  • Регистрация: 2011-07-07
  • Компания: Future IT Solutions
  • Профессия: Разработчик 1С
Вот функция ИмяКонтрагентаНаСервере (Документ) Вам и выдаст ссылку на контрагента.
Вызов функции вы же вызываете на клиенте. Процедура должна быть следующая:


&НаКлиенте
Процедура ИмяКонтрагента(Команда)
      НайденныйКонтрагент = ИмяКонтрагентаНаСервере(Документ);
      Сообщить(НайденныйКонтрагент);
КонецПроцедуры

Что-нибудь из этой серии, если Вас интересует вывод в табло. Если же иной вывод - напишите какой Вам нужен
С уважением,
Андрей Федотов
Future IT Solutions

Оффлайн Pavel779

  • ***
  • Сообщений: 145
  • РЕПУТАЦИЯ: 3
  • КПД: 2%
  • Регистрация: 2011-11-01
  • Сайт: 
  • Профессия: Консультант 1С
Забыл сказать речь идет об управляемом приложении.
Я так понял в УП, в модуле менеджера документа напрямую к реквизиту через "." обратиться нельзя.
Там надо получить форму.
Скажите, как в данном случае обратиться к реквизиту.

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

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

Оффлайн Pavel779

  • ***
  • Сообщений: 145
  • РЕПУТАЦИЯ: 3
  • КПД: 2%
  • Регистрация: 2011-11-01
  • Сайт: 
  • Профессия: Консультант 1С
А если я нехочу искать а создал реквизит в котором уже выбираю документ.
И вот как мне в этом документе получить реквизит


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

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

Ответов: 1
Просмотров: 4292
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

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

Ответов: 1
Просмотров: 5551
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

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

Ответов: 2
Просмотров: 5885
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

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

Ответов: 4
Просмотров: 4366
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

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

Ответов: 2
Просмотров: 1978
Последний ответ 07 Дек 2016, 15:53
от Kironten

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

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

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal