УТ10.3 Логика! Если Не Проведен Тогда Предупреждение("Документ можно распечатать только после его проведения!"); Возврат; ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда Предупреждение("Недостаточно полномочий для печати непроведенного документа!"); Возврат; КонецЕсли; где она? |
[filolog]йопт[/filolog] [em]Функция РазрешитьПечатьНепроведенныхДокументов(Проведен = Истина) Экспорт Если Проведен Тогда Возврат Истина; КонецЕсли; РазрешеноПечатать = УправлениеПользователями.ПолучитьЗначениеПраваДляТекущегоПользователя(ПланыВидовХарактеристик.ПраваПользователей.ПечатьНепроведенныхДокументов, Ложь); Если РазрешеноПечатать.Количество() = 0 Тогда Возврат Ложь; ИначеЕсли РазрешеноПечатать.Количество() > 1 Тогда Возврат Истина; Иначе Возврат РазрешеноПечатать[0].Значение; КонецЕсли; КонецФункции // РазрешитьПечатьНепроведенныхДокументов()[/em] поясните, как количество может быть больше 1 ? |
Это хороший стиль программирования. Разработчик качественно писал код. функция ПолучитьЗначениеПраваДляТекущегоПользователя возвращает результат запроса. В текущей реализации в результате ожидается только одна запись. Но так будет не всегда. Через год-другой может возникнуть ситуйня, когда разработчики изменят запрос, для своих каких-то новых целей. И запрос начнёт возвращать несколько записей. Разработчик предусмотрел возможное изменение и заранее написал обработку этой ситуации. |
Ну раз обращение по индексу, значит в ответ ожидает коллекцию, почему она не может содержать более одного элемента? Разные люди/команды писали механику: одни управление пользователями, другие прикладное поведение системы при печати. На момент написания вторым неизвестна реализация первых, но уже задокументированы требования к интерфейсам |
Вообще, так рекомендуется делать всегда. Предусматривать любые значения проверяемого параметра. Особенно в том случае, если параметр получен из функции другого модуля, из другой подсистемы (которую могут как угодно изменить в следующих релизах). |
считываемое значение (одно!) типа булево передаётся коллекцией замечательно. прекрасно. я понимаю, что нужно предусматривать все возможные варианты, но может не надо плодиьт эти варианты на ровном месте? больше похоже, что этот код не писали, а копипастили , не утруждаясь обдумыванием |
5-Зелёный тролль > ты смотришь в белый ящик. В момент разработки смотрели в чёрный. Вот и вся разница :) |
+(6) и да, ретроспективу не провели. Бывает. |
Зелёный тролль - ты же вроде франч, у тебя нет доступа к 1с-фреш? |
8-angro > франч. нету. я против засовывания 1С в облака. |
(9) да, как людям занимающимся доработкой 1с, очень неудобно |
5-Зелёный тролль > Мэри Сью права, имхо. Именно копипастили, ни о чем не задумываясь. И это правильно. Именно так и следует программировать в 21 веке. ИМХО. |
Индийский стиль программирования - рулит. Русский стиль программирования - говно и отстой. ИМХО. |
ПолучитьЗначение[b]Права[/b]ДляТекущегоПользователя одного единственного. я не знаю как и почему одно право может иметь несколько значений сразу(???)... но если их несколько, то почему это считается разрешением пользователю делать что-то? я бы понял, если бы запретили. но разрешать даже не проверяя полученные значения... при том что, по умолчанию юзерам запрещено печатать непроведённые доки.... всё это очень странно. |
13-Зелёный тролль > В УЦ3 - ты обучался хоть раз хоть чему-нибудь? Настоятельно рекомендую. Иначе так на всю жизнь и останешься франчем 1С (позором фирмы 1С). Там преподают примерно вот так: - Видите этот код? - Так пишут все программисты фирмы 1С. - Так написаны все типовые конфигурации от 1С. - Так писать нельзя. - Если я у вас увижу такой код на экзамене - сразу неуд. |
Текущее время: 12:53. Часовой пояс GMT +3. |