Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   УТ10.3 Логика! (http://forums.kuban.ru/f1040/ut10_3_logika-7600572.html)

qweqwe123123 17.03.2016 03:47

УТ10.3 Логика!
 
Если Не Проведен Тогда
Предупреждение("Документ можно распечатать только после его проведения!");
Возврат;
ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда
Предупреждение("Недостаточно полномочий для печати непроведенного документа!");
Возврат;
КонецЕсли;


где она?

qweqwe123123 17.03.2016 03:54

[filolog]йопт[/filolog]

[em]Функция РазрешитьПечатьНепроведенныхДокументов(Проведен = Истина) Экспорт

Если Проведен Тогда
Возврат Истина;
КонецЕсли;

РазрешеноПечатать = УправлениеПользователями.ПолучитьЗначениеПраваДляТекущегоПользователя(ПланыВидовХарактеристик.ПраваПользователей.ПечатьНепроведенныхДокументов, Ложь);
Если РазрешеноПечатать.Количество() = 0 Тогда
Возврат Ложь;
ИначеЕсли РазрешеноПечатать.Количество() > 1 Тогда
Возврат Истина;
Иначе
Возврат РазрешеноПечатать[0].Значение;
КонецЕсли;

КонецФункции // РазрешитьПечатьНепроведенныхДокументов()[/em]

поясните, как количество может быть больше 1 ?

MarySue 17.03.2016 08:20

Это хороший стиль программирования. Разработчик качественно писал код.
функция ПолучитьЗначениеПраваДляТекущегоПользователя возвращает результат запроса.
В текущей реализации в результате ожидается только одна запись.
Но так будет не всегда. Через год-другой может возникнуть ситуйня, когда разработчики изменят запрос, для своих каких-то новых целей. И запрос начнёт возвращать несколько записей.
Разработчик предусмотрел возможное изменение и заранее написал обработку этой ситуации.

roma n 17.03.2016 08:23

Ну раз обращение по индексу, значит в ответ ожидает коллекцию, почему она не может содержать более одного элемента?
Разные люди/команды писали механику: одни управление пользователями, другие прикладное поведение системы при печати. На момент написания вторым неизвестна реализация первых, но уже задокументированы требования к интерфейсам

MarySue 17.03.2016 08:24

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

qweqwe123123 17.03.2016 09:44

считываемое значение (одно!) типа булево передаётся коллекцией
замечательно. прекрасно.

я понимаю, что нужно предусматривать все возможные варианты, но может не надо плодиьт эти варианты на ровном месте? больше похоже, что этот код не писали, а копипастили , не утруждаясь обдумыванием

roma n 17.03.2016 09:48

5-Зелёный тролль > ты смотришь в белый ящик. В момент разработки смотрели в чёрный. Вот и вся разница :)

roma n 17.03.2016 09:49

+(6) и да, ретроспективу не провели. Бывает.

angro 17.03.2016 10:02

Зелёный тролль - ты же вроде франч, у тебя нет доступа к 1с-фреш?

qweqwe123123 17.03.2016 10:13

8-angro > франч. нету. я против засовывания 1С в облака.

angro 17.03.2016 10:22

(9) да, как людям занимающимся доработкой 1с, очень неудобно

DeiMos 19.03.2016 01:17

5-Зелёный тролль > Мэри Сью права, имхо.
Именно копипастили, ни о чем не задумываясь.

И это правильно.
Именно так и следует программировать в 21 веке. ИМХО.

DeiMos 19.03.2016 01:19

Индийский стиль программирования - рулит.

Русский стиль программирования - говно и отстой.
ИМХО.

qweqwe123123 19.03.2016 10:44

ПолучитьЗначение[b]Права[/b]ДляТекущегоПользователя
одного единственного.
я не знаю как и почему одно право может иметь несколько значений сразу(???)... но если их несколько, то почему это считается разрешением пользователю делать что-то? я бы понял, если бы запретили. но разрешать даже не проверяя полученные значения... при том что, по умолчанию юзерам запрещено печатать непроведённые доки....
всё это очень странно.

DeiMos 22.03.2016 23:48

13-Зелёный тролль > В УЦ3 - ты обучался хоть раз хоть чему-нибудь?

Настоятельно рекомендую.

Иначе так на всю жизнь и останешься франчем 1С (позором фирмы 1С).

Там преподают примерно вот так:
- Видите этот код?
- Так пишут все программисты фирмы 1С.
- Так написаны все типовые конфигурации от 1С.

- Так писать нельзя.
- Если я у вас увижу такой код на экзамене - сразу неуд.


Текущее время: 12:53. Часовой пояс GMT +3.