Если ДР_Месяц = ТД_Месяц и ДР_День = ТД_День Тогда
//Добавляю новый элемент в массив Массив.Добавить(Выборка.Наименование);
КонецЕсли;
КонецЦикла;
Возврат Массив;
КонецФункции
1.Разъясните, пожалуйста, что значит "Возврат Массив"? Не пойму, что эта команда делает. Что куда возвращает и что вообще происходит с массивом ? Массив я так понял это список значений, который мы насобирали из выбранного подходящих значений из справочника сотрудников? 2.Что значит "Пока Выборка.Следующий Цикл" ? Цикл я, вроде, понимаю - это значит, что пройдёт выборка все значения(поправьте, пожалуйста, если не так) А вот почему мы пишем вначале "Пока" и что значит "Выборка.Следующий"? В справочнике в 1с читал, но что-то не понятно.
ЕстьЗначенияВВыборке = Выборка.Следующий();//Позиционируемся на следующей строке выборки и возвращаем истина если спозиционировались и ложь если значения закончились Пока ЕстьЗначенияВВыборке Цикл Сообщить(Выборка.Ссылка); ЕстьЗначенияВВыборке = Выборка.Следующий();//Позиционируемся на следующей строке выборки и возвращаем истина если спозиционировались и ложь если значения закончились КонецЦикла;
ЕстьЗначенияВВыборке = Выборка.Следующий();//Позиционируемся на следующей строке выборки и возвращаем истина если спозиционировались и ложь если значения закончились Пока ЕстьЗначенияВВыборке Цикл Сообщить(Выборка.Ссылка); ЕстьЗначенияВВыборке = Выборка.Следующий();//Позиционируемся на следующей строке выборки и возвращаем истина если спозиционировались и ложь если значения закончились КонецЦикла;
1. А массив зачем приписали? "Возврат Массив"? Куда конкретно меня отошлёт в моём коде, после того как я написал "Возврат Массив"? 2. Я читал в помощнике в 1с, что цикл заканчивается, когда он получает значение Ложь, но я не знал, что Ложь он получает, когда закончились элементы для перебора. Я правильно понял, что, когда мы пишем "Цикл", то действие впереди написанного слова "цикл" будет повторяться до того пока не закончатся элементы перебора?
Ааа.... вник вроде про "Цикл".
Пока "Здесь пишем условие при котором будет выполняться повтор, то есть Цикл" Цикл
А вот про "Выборка.Следующий" непонятно.
У меня в цикле условие Выборка.Следующий Что это значит дословно? То, что пока выборка переходит на следующий элемент (то есть есть на что переходить) и продолжается цикл? А когда закончатся, значит цикл прекратиться? Я правильно понял?
P.S. Извиняюсь за невежество в этом вопросе. Только учусь. Хочется разобраться во всём, чтоб потом не было пробелов в знаниях. Кстате говоря, никогда программированием не занимался, но тут попробывав, очень затянуло и очень понравилось. Никогда не знаешь, что будет Вам по душе )))
Да В данном контексте Массив - просто имя переменной и в этой переменной могут содержаться, вообще говоря, произвольные данные произвольной структуры. в то место, откуда Вы Вызвали эту функцию (то есть указали имя функции в своем коде).
То есть, я когда написал "Возврат Массив" даннные добавленные в массив командой Массив.добавить(Выборка.Наименование) Вернутся в место где я создал массив или вообще в начало всей функции? И зачем вообще делать такой возврат? Данные тогда не прочитаются из этого массива, если я обращусь к нем из другого места командой экспорт? Или для чего нужен этот возврат?
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0
Командой экспорт вы не сможете обратиться к этой функции из другого места. Никак. А вообще напишите, как вы предполагаете использовать указанную выше функцию. Пример Вашего кода, как вы его видите.
Правильно поставленный вопрос содержит до 90% ответа.
То есть, я когда написал "Возврат Массив" даннные добавленные в массив командой Массив.добавить(Выборка.Наименование) Вернутся в место где я создал массив или вообще в начало всей функции? И зачем вообще делать такой возврат? Данные тогда не прочитаются из этого массива, если я обращусь к нем из другого места командой экспорт? Или для чего нужен этот возврат?
Возможно, использование функции в вашем случае и не обязательно.
1. Функция нужна там, где результаты вычислений в ней нужно сразу куда-то применить, подставить в другую формулу. Причем подставить несколько раз.
Ну, если помните, геометрию, пример: Катет = Гипотенуза*Sin X, где Х - размер угла треугольника (не помню прилегающ или наоборот)
Sin X - это ваша функция, результат вычислений сразу подставляется в другую форумулу.
Если в задаче нужно сразу определить просто Sin Х и все, и результат действия программы будет только это значение, то да - можно представить в виде процедуры.
2. Ну еще, в программировании, когда часть вычисленией происходит на месте, локально. А основные вычисления будут происходить где-то в глобальном модуле. Тогда тоже применение функций целесообразно.
Сообщение отредактировал Домовик - 29.01.14, 10:23
Командой экспорт вы не сможете обратиться к этой функции из другого места. Никак. А вообще напишите, как вы предполагаете использовать указанную выше функцию. Пример Вашего кода, как вы его видите.
Так а у меня она работает на экспорт. Я её экспортом вызываю из модуля управляемого приложения. А сам этот код пишу в общем механизме, потому как там можно обратиться к БД, в отличии от модуля управляемого приложения. И всё работает. Выдаёт мне Оповещение, если у кого-то День Рождения сегодня.
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0
Команда экспорт разрешает вызывать функцию из других модулей, но сама по себе она не вызывает никакую функцию/процедуру. Вы преднамеренно либо случайно путаетесь в терминологии и не хотите отвечать на наводящие вопросы, так что до момента Вашего ответа на мой вопрос прекращаю какие-либо комментарии в этом топике.
Правильно поставленный вопрос содержит до 90% ответа.
Команда экспорт разрешает вызывать функцию из других модулей, но сама по себе она не вызывает никакую функцию/процедуру. Вы преднамеренно либо случайно путаетесь в терминологии и не хотите отвечать на наводящие вопросы, так что до момента Вашего ответа на мой вопрос прекращаю какие-либо комментарии в этом топике.
) Да, Вы не горячитесь:) Зачем мне предеамерено путаться в терменалогии?! Я ж только учусь и стараюсь разобрать, и пишу сюда, чтоб узнать правильно ои я понимаю вещи. Весь код выложу чуть позже как домой попаду. Он у меня дома. Из-за этого до сих пор и не выложил.
Если ДР_Месяц = ТД_Месяц и ДР_День = ТД_День Тогда
//Добавляю новый элемент в массив Массив.Добавить(Выборка.Наименование);
КонецЕсли;
КонецЦикла;
Возврат Массив;
КонецФункции
Собственно всё работает. Но это и естественно, потому что это задание из курса обучения 1с. НО есть несколько нюансов, которые в этом курсе не объясняют. В частности про возврат. Зачем его пишут и какое у этой команды смысловое значение. Подскажите, пожалуйста. Со всем, вроде, разобрался, а вот с этим... как-то не ладится.
это был ответ. вы спраивали о назначении команды Возврат.
Оооо... спасибо огромное. Теперь понял. Доступно объяснили. Когда я через "Экспорт" обращусь, чтоб функция знала, что она должна передать, какое вычисление.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!