КД и параметры алгоритма #636723


#0 by Wobland
продолжаю открывать для себя КД. сделал себе алгоритм СвернутьПоНоменклатуре, при выгрузке некоторых документов он вызывается, ТЧ сворачивается, всё хорошо. а при выгрузке некоторых других документов нужен чуть другой текст запроса. что придумал: перед обработкой засовываю в Параметры флаг НужнаСтавкаНДС, а в алгоритме достаю этот флаг из Параметров и меняю текст запроса. собссно, вопрос: а как поступают белые люди в подобных ситуациях?
#1 by fisher
Примерно так и делают. Если нужны входящие параметры для алгоритмов (аналог функций), то обычно в параметры добавляется отдельный параметр для этих целей типа структура ("ПараметрыАлгоритмов", например). Через который передача и идёт. Динамический текст запроса - тема отдельная. По возможности стараются делать так, чтобы текст базового запроса таки можно было открывать конструктором.
#2 by pessok
а может лучше не в структуру параметров пихать, а иметь некий глобальный обработчик, который будет проверять реквизит, а-ля. ЕстьРеквизитВТабличнойЧасти(СтрокаТабличнойЧасти)? З.Ы. Сам не пробовал, ответ по наитию
#3 by Wobland
>то обычно в параметры добавляется отдельный параметр это сейчас о чём? есть же "предопределённая" структура Параметры, её разве мало? про запрос согласен, да. но у меня на входе семёрка
#4 by Wobland
что приведёт к дополнительным вызовам и увеличению времени работы. при нескольких сотнях документов только поступлений в день веду борьбу за миллисекунды ;)
#5 by pessok
ну если вопрос стоит так, то самый верный вариант
#6 by fisher
Ну и нафига корень этой структуры засорять всякой фигней? Просто вопрос удобства. Работаешь не через Параметры, а через Параметры.ПараметрыАлгоритмов. Пока один такой параметр - вроде без разницы. А завтра их может быть сотня.
#7 by Wobland
ладно. а что живёт в Параметрах тогда? могу соврать, точно не помню, но вроде там ничего не было в перед обработкой
#8 by pessok
параметры - это произвольная структура, которую ты сам заполняешь вроде
#9 by Wobland
вот я такое же представление об этом получил. но придерживается другого мнения, мне непонятного
#10 by fisher
Я не понимаю, почему мы друг друга не понимаем. Идея-то примитивная и лежащая на поверхности - путем создания вложенной в "Параметры" структуры, выделить параметры алгоритмов в отдельное пространство имен. Задолбали :) Юзайте как хотите.
#11 by acsent
Хотя так не совсем по методике 1с
#12 by fisher
Он из 7.7 конвертит.
#13 by Wobland
Параметры - Структура, в которой хранятся переменные доступные во всех обработчиках зачем там ещё одна вложенная структура?
#14 by pessok
опередил! я тоже хотел спросить зачем одну структуру помещаьт в другую в данном разрезе. или чтобы просто было наглядно?
#15 by fisher
Чтобы избежать потенциальных конфликтов пространств имен. Эти ошибки очень неприятные и трудно локализуемые. Зря, что ли, 1С пыталась отучить от глобальных переменных? Забудешь ты рано или поздно про свои параметры алгоритмов, которые там и сям программно суешь в "Параметры". И создашь одноименный параметр для совершенно других целей. И огребешь. А так - параметры алгоритмов изначально изолированы от всех остальных параметров. Считай, что вместо глобального модуля ты создал специальный общий модуль. Надеюсь, что аналогия ясна. Я и так уже сказал в пять раз больше, чем собирался :)
#16 by GenV
Стараюсь динамически текст запроса не менять - обхожусь передачей параметров в запрос или несколькими запросами. Параметры добавляю в подструктуру с именем "Параметры_ИмяАлгоритма", если параметров много.
#17 by Wobland
от теперь доходит ;) "Параметры_ИмяАлгоритма" - отличная иллюстрация спасибо
#18 by Йохохо
можно чуть изящнее Вызов ЗаполнитьТЗСотрудникаОрганизации(Исх, Вх, Ист, Пр) и в коде:
#19 by Wobland
вижу параметры в скобках.. это типа "предопределённые"? в хелпе вроде как обо этом не говорится
#20 by Йохохо
да, предопределенные, в коде обращение по обычному для конвертации порядку
#21 by Йохохо
ЗаполнитьТЗСотрудникаОрганизации(Сотрудники.ТекущийЭлемент, РабочаяДата);
#22 by Wobland
не, не вижу в хелпе. надо в букварях порыться. и на том спсибо
#23 by Йохохо
помойму этого нет в хелпах, алгоритмы в 7.7 выгружаются с такой декларацией Функция ЗаполнитьТЗСотрудникаОрганизации(
#24 by Wobland
ё-моё, сколько букв
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С