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

Автор Тема: Процедуры  (Прочитано 9391 раз)

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

Оффлайн Domra

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-11
  • Сайт: 
У меня совсем чайницкий вопрос, для новичков. Возможно задам его косноязычно, но попробую
Скажите, пожалуйста, в теле кода такие записи:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   ТабДок = Новый ТабличныйДокумент;
   ПечатьТорг12(ПараметрКоманды, ТабДок);
   ТабДок.Показать();
КонецПроцедуры

&НаСервере
Процедура ПечатьТорг12(ПараметрыВыполнения, ТабДок)
      .....
               Запрос.УстановитьПараметр("Ссылка", ПараметрыВыполнения);
                .....
КонецПроцедуры
В процедуре ПечатьТорг12 что означают ПараметрыВыполнения, ТабДок? Для чего они? Ведь не только они объявляются и вычисляются в этой процедуре?
В процедуре ОбработкаКоманды что означают ПараметрКоманды, ПараметрыВыполненияКоманды?
Почему в процедуре ОбработкаКоманды идет вызов процедуры ПечатьТорг12 с параметрами (ПараметрКоманды, ТабДок), а не (ПараметрыВыполнения, ТабДок)??? Для чего эта замена имен параметров?
Я правильно понимаю, что параметры ПараметрыВыполнения и ТабДок должны где-то как-то объявляться/вычисляться? Почему если ТабДок  объявляется в процедуре ОбработкаКоманды, то он пишется в скобках у процедуры ПечатьТорг12? По логике он, как и параметр ПараметрыВыполнения должен объявляться/вычисляться в этой же процедуре, ПечатьТорг12
 


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Re: Процедуры
« Ответ #1: 22 Апр 2013, 14:14 »
В процедуре ПечатьТорг12 что означают ПараметрыВыполнения, ТабДок?

ТабДок - это табличный документ, который будет заполнен данными после выполнения процедуры.

ПараметрыВыполнения - очевидно, параметры, которые нужны при выполнении процедуры

Почему в процедуре ОбработкаКоманды идет вызов процедуры ПечатьТорг12 с параметрами (ПараметрКоманды, ТабДок), а не (ПараметрыВыполнения, ТабДок)??

Потому что эта переменная в процедуре ОбработкаКоманды объявлена как ПараметрКоманды.


Оффлайн Domra

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-11
  • Сайт: 
Re: Процедуры
« Ответ #2: 22 Апр 2013, 14:29 »
В процедуре ПечатьТорг12 что означают ПараметрыВыполнения, ТабДок?

ТабДок - это табличный документ, который будет заполнен данными после выполнения процедуры.

ПараметрыВыполнения - очевидно, параметры, которые нужны при выполнении процедуры

Почему в процедуре ОбработкаКоманды идет вызов процедуры ПечатьТорг12 с параметрами (ПараметрКоманды, ТабДок), а не (ПараметрыВыполнения, ТабДок)??

Потому что эта переменная в процедуре ОбработкаКоманды объявлена как ПараметрКоманды.

Переменная и параметр - это одно и то же?
Иными словами я могу в процедуре Траляля(Параметр1, Параметр2) вызвать процедуру ПечатьТорг12 и обозвать ее параметры так, как мне удобно: допустим, ПечатьТорг12(Вася1, Вася2)? При этом параметр Вася1 будет равен ПараметрыВыполнения, а Вася2 - ТабДок?

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Re: Процедуры
« Ответ #3: 22 Апр 2013, 14:49 »
Переменная - это выделенная область памяти для для хранения какой-либо информации. Параметр - это то значение, которое может принимать функция или процедура, то есть это конструкция встроенного языка. В параметр передается переменная.

Это вопрос контекста видимости переменных. Одна процедура не видит переменные, используемые в другой процедуре, если они не используют общий контекст. Так что передавать можно переменные с любым названием.

Оффлайн Domra

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-11
  • Сайт: 
Re: Процедуры
« Ответ #4: 22 Апр 2013, 14:52 »
Это вопрос контекста видимости переменных. Одна процедура не видит переменные, используемые в другой процедуре, если они не используют общий контекст. Так что передавать можно переменные с любым названием.
А где задается такой контекст?
Спасибо большое за ответы!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Процедуры
« Ответ #5: 22 Апр 2013, 15:06 »
Есть Формальные параметры, а есть фактические!

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   ТабДок = Новый ТабличныйДокумент;
   ПечатьТорг12(ПараметрКоманды, ТабДок); //Передача в процедуру "ПечатьТорг12" фактических параметров
   ТабДок.Показать();
КонецПроцедуры

&НаСервере
Процедура ПечатьТорг12(ПараметрыВыполнения, ТабДок) //Прием в процедуре формальных параметров
                                                    //Т.е. переменная ПараметрыВыполнения в процедуре "ПечатьТорг12" = переменной ПараметрКоманды в процедуре "ОбработкаКоманды"
      .....
               Запрос.УстановитьПараметр("Ссылка", ПараметрыВыполнения);
                .....
КонецПроцедуры
Добавлено: 22 Апр 2013, 15:08

в данном случае передача таких параметров выполняется по ссылке (передается не значение, а область памяти переменной) т.е. изменение формальных Параметров приведет к изменению фактических параметров
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Domra

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-11
  • Сайт: 
Re: Процедуры
« Ответ #6: 22 Апр 2013, 15:33 »

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

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Процедуры
« Ответ #7: 22 Апр 2013, 15:42 »
Процедура ПечатьТорг12(Знач ПараметрыВыполнения, Знач ТабДок) //Вот так
//Причем теперь значение будет копироваться и занимать отдельную память

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

Оффлайн Domra

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-11
  • Сайт: 
Re: Процедуры
« Ответ #8: 22 Апр 2013, 17:13 »
Процедура ПечатьТорг12(Знач ПараметрыВыполнения, Знач ТабДок) //Вот так
//Причем теперь значение будет копироваться и занимать отдельную память

Вообще это все описано в документации к встроенному языку 1С
Спасибо. Я думаю, что абсолютно все описывается в руководствах, справочниках и документациях, да.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Re: Процедуры
« Ответ #9: 22 Апр 2013, 17:22 »
Практически
Жмем в конфигураторе Ctrl+F1 - пишем на закладке Индекс - Процедура щелкаем два раза и читаем
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!


Теги:
 

Как перенести значение переменных из одной процедуры(функции) в другую

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

Ответов: 6
Просмотров: 6519
Последний ответ 14 Мар 2012, 22:58
от sadovod
Управляемый интерфейс.Как из серверной процедуры открыть форму объекта?

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

Ответов: 2
Просмотров: 3833
Последний ответ 06 Окт 2014, 10:22
от ZhuravlevAS
Допечатать что-либо в табличный документ, передаваемый как параметр процедуры

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

Ответов: 2
Просмотров: 900
Последний ответ 24 Май 2016, 12:46
от Vdeg
Экспорт процедуры из общего модуля в модуль формы

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

Ответов: 3
Просмотров: 3798
Последний ответ 26 Окт 2011, 13:07
от has
Вызов процедуры из модуля документа в модуле формы

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

Ответов: 6
Просмотров: 13482
Последний ответ 30 Сен 2016, 14:16
от Igor100500

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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 264
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal