Вопрос № 148799: Здраствуйте уважаемые: Вопрос -мне надо зделалть так чтоб штатное расписание формировалось по статосу должности, с самой высокой до самой низкой, например: Гениральный Директор потом Зам Ген.Директора и секриталь и т.д. Расписание так таковое работае...
Вопрос № 148805: В последние две недели при работе в программе 1С-Автотранспорт (РАРУС) при попытке запуска различными пользователями программы - выдается "ошибка инициализации
защищенных функций" и база закрывается. Решаеем так: под этим пользователем з...Вопрос № 148898: Добрый день. Подскажите можно ли использовать запрос в цикле перебора таблицы значений. Если да то какая производительность такого метода, если таблица значений имеет около 30 записей....
Вопрос № 148.799
Здраствуйте уважаемые: Вопрос -мне надо зделалть так чтоб штатное расписание формировалось по статосу должности, с самой высокой до самой низкой, например: Гениральный Директор потом Зам Ген.Директора и секриталь и т.д. Расписание так таковое работает но формерует в разнабой сначало ставит секреторя потом Ген.Директора, а мне задачу дали как я вам выше описал чтоб выводило.
Отвечает: Альшанский Дмитрий Викторович
Здравствуйте, Куйбышев А.А.! Алгоритм простой, точнее их два :) 1. Более программный - создать объект ТаблицаЗначений, создать колонки в соответсвии с требованиями выводимых параметров штатки, заполнить её и т.д. Далее, отсортировать таблицу основываясь на логическом сравнении Наименования Должности примерно, как в Приложении - Код1. Минусы способа - громоздкий код, при изменении статуса или наименовании должности или ввода новой должности где-то в середине иерархии - перелопачивать весь код. Плюсы способа
- пользователям меньше возни.... 2. Более ручной способ - упорядочить список должностей в справочнике по коду - более высокой должности - более низкий код, т.е Должность.Наименование = "Генеральный Директор" Должность.Код = "001" Должность.Наименование = "Зам. ген. Директора" Должность.Код = "002" в ТаблицеЗначений добавить колонку КодДолжности в которую будет вноситься значение Должность.Код Перед перебором строк
ТаблицыЗачений, ставим ТаблицаЗначений.Сортировать("ФИО,КодДолжности") Минусы способа - долго объяснять кадровикам(или бухгалтерам), зачем это надо. Плюсы способа - нет смысла лопатить код - достаточно просто подправить коды должностей в справочнике.
Приложение:
--------- "НЕ МОГУ ВОЙТИ В КОМПЬЮТЕР!!!" - это чисто эмоции. Надо твердо знать, где Логин, а где пароль!!!
#thank 148799 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Отвечает: DERL.KG
Здравствуйте, Куйбышев А.А.! Ну во-первых не понятно у вас как организованы справочники, и что из себя представляет "Должность" в справочнике "Сотрудники". Если это тип Справочник, например Справочник.Должности, то вам необходимо для начала установить коды элементам этого справочника в порядке возрастания должности, например 1 - Ген.директор, 2 - Зам.директора и т.д. А затем в отчете надо будет все данные вносить в ТаблицуЗначений, включая код элемента должности, а затем отсортировать
ТЗ по полю кода должности, а уже затем выводить в отчете. Если же у вас в справочнике "Сотрудники" просто текстовое поле для должности, то вам надо будет добавить в этот справочник реквизит "код должности" и также установить значения по иерархии должностей. Затем можно проделать тоже самое, что я сказал в начале, но можно и просто установить признак "Сортировка" для нового реквизита "код должности" и уже в отчете сортировать по
этому реквизиту: Спр = СоздатьОбъект("Справочник.Сотрудники"); Спр.ПорядокРеквизита("КодДолжности"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл ... КонецЦикла;
Ответ отправил: DERL.KG (статус: 10-ый класс)
Ответ отправлен: 29.10.2008, 06:17
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 148799 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 148.805
В последние две недели при работе в программе 1С-Автотранспорт (РАРУС) при попытке запуска различными пользователями программы - выдается "ошибка инициализации защищенных функций" и база закрывается. Решаеем так: под этим пользователем заходим локально на сервере, потом закрываем и пользователь со своего рабочего места порграмму запускает уже без ошибок, но спустя время опять повторяется тоже самое. Что-же это такое и как исправить?
Отвечает: Владимир Лазурко
Здравствуйте, Константин Серов!
Сообщение "Ошибка инициализации защищенных функций" является сообщением системы защиты порграмм РАРУС и других, использующих дополнительный ключ защиты. Т.е. кроме ключа защиты 1С Вы должны еще иметь ключ на РАРУС-Автотранспорт. Если эта ошибка стала появляться недавно, проверьте количество одновременно подключаемых пользователей и количество лицензий на использование РАРУС-Автотранспорт.
Такая дополнительная защита устанавливается для того, чтобы нерадивые
работники или покупатели не "делились" конфигурацией с теми, кто её не покупал.
Проанализируйте:
после каких действий стала появляться эта ошибка;
проследите количество пользователей, одновременно подключаемых к Автотранспорту - если количество подключаемых пользователей превыщает количество, прописанное в ключе, то "лишний" пользователь не сможет войти в систему независимо от прав доступа и рабочей станции - он просто &q
uot;лишний" и всё;
не переустанавливалась ли операционная система на рабочем компьютере, с которого невозможен вход, если эта ошибка выскакивает только на определенном компьютере (или на одних и тех же, а на остальных всё работает отлично);
если система на "ошибочных" коммпьютерах переустанавливалась, возможно, потребуется переустановить компоненты защиты от РАРУСА, либо зпрегистрировать используемую компоненту защиты (обычно DLL) в системе;
почему "локально подключете
пользователя на сервере", а потом он работает со своего рабочего места? МОМож, имеет смысл пользователям работать в терминально режиме на сервере, елси, конечно, по "сервером" у Вас не стоит обычный компьютер с расшаренной папкой с базами.
Проконсультируйтесь с поставщиком продукта. Это поможет Вам быстро найти и устраниьть причину Вашей проблемы.
Успехов! С уважением, Владимир.
Ответ отправил: Владимир Лазурко (статус: Студент)
Ответ отправлен: 31.10.2008, 08:57
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 148805 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 148.898
Добрый день. Подскажите можно ли использовать запрос в цикле перебора таблицы значений. Если да то какая производительность такого метода, если таблица значений имеет около 30 записей.
Приложение:
Отправлен: 29.10.2008, 17:00
Вопрос задал: ДАС Алекс (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Владимир Лазурко
Здравствуйте, ДАС Алекс!
Вот несколько рекомендаций (и замечаний) по Вашему примеру из Приложения: 1. Вы описываете переменные внутри цикла - это синтаксическая ошибка. Перенесите их в начало процедуры или модуля (если они будут доступны для всех процедур и функция модуля). 2. Если ошибочное выполнение
запроса в цикле - тут можно подойти двояко. Раз не выполнился запрос - вывести соответствующее предупреждение и продолжить цикл:
Код:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Запрос по элементу таблицы "+тз.дсе+" не
выполнился!"); Продолжить; КонецЕсли;
Т.е. уже можно будет как минимум опеделить при каких условиях возникает ошибка. Я бы сделал так, как у меня в Приложении.
Успехов! С уважением, Владимир.
Приложение:
Ответ отправил: Владимир Лазурко (статус: Студент)
Ответ отправлен: 30.10.2008, 10:37
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 148898 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Отвечает: Ovr1970
Здравствуйте, ДАС Алекс! 1. Можно использовать запрос в цикле, если указаны сильные ограничения (в выборке мало записей) и используется мало объединений таблиц, то производительность удовлетворительная. 2. Как показывает практика, запрос с выборкой списка и запрос в цикле различаются в зависимости от оптимизаций от 2 до 10 раз (возможно и больше, но редко). Т.е. в вашем случае, при 30 записях, скорее всего быстрее будет один запрос с разборкой по результатам. Если время работы запроса критично, лучше делать
только один запрос.
Ответ отправил: Ovr1970 (статус: Практикант)
Ответ отправлен: 30.10.2008, 11:19
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 148898 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.