Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
06 Дек 2016, 20:52
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Обработка "СогласованиеЗаявок"  (Прочитано 275 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Денис Андрушко

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-09-22
  • Сайт: 
В обработке "СогласованиеЗаявок" кто угодно из пользователей который входят в маршрут согласования может зайти и подтвердить заявку(Если несколько уровней, кто угодно с разных уровней).
ПРОШУ, помогите дописать так чтоб: пока все пользователи из 1Уровня не подтвердили, пользователи из 2Уровня не имели возможность согласовать заявку.
Уровни задаю в Справочник.МаршрутыСогласованияЗаявок Где Пользователи 1Уровня в корне 2уровня.

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

Уверен что есть куда проще вариант решения данной задачи, который предполагает написание всего пары строчок кода.

Уважаемые форумчане, Помогите решить поставленную задачу.




Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн alex0402

  • ***
  • Сообщений: 176
  • РЕПУТАЦИЯ: 18
  • КПД: 10%
  • Регистрация: 2010-09-10
  • Сайт: 
Нужен запрос, который вернет минимальный уровень не согласовавших.
если запрос пустой - согласовали все.
если не пустой, то разрешено только этому уровню.
все.

Оффлайн Денис Андрушко

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-09-22
  • Сайт: 
   Заявка = Документы.ЗаявкаНаРасходованиеСредств.ПустаяСсылка();
   отбор = новый Структура;
   отбор.Вставить("Подразделение", Заявка.Подразделение);
   ВыборкаНастройки = РегистрыСведений.НастройкиНачалаМаршрутовСогласования.Выбрать(ОТбор);
   Пока ВыборкаНастройки.Следующий Цикл
      ПервыйМаршрут = ВыборкаНастройки.МаршрутСогласования;
   КонецЦикла;   
   //подписанты
   //рег состояние заявок
   всесоглосавали1 = Истина;
   ЭтотСогласующий1 = Ложь;
   ДЛя Каждого Стр Из ПервыйМаршрут.СогласующиеЛица Цикл
      Запроспроверки = новый Запрос;
      Запроспроверки.Текст =
      "ВЫБРАТЬ
      |   СостоянияСогласованияЗаявок.Пользователь,
      |   СостоянияСогласованияЗаявок.Заявка,
      |   СостоянияСогласованияЗаявок.Состояние
      |ИЗ
      |   РегистрСведений.СостоянияСогласованияЗаявок КАК СостоянияСогласованияЗаявок
      |ГДЕ
      |   СостоянияСогласованияЗаявок.Заявка = &Заявка
      |   И СостоянияСогласованияЗаявок.Пользователь = &Пользователь
      |   И СостоянияСогласованияЗаявок.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОбъектов.Согласован)";
      Запроспроверки.УстановитьПараметр("заявка", Заявка);
      Запроспроверки.УстановитьПараметр("Пользователь", Стр.Пользователь);
      Рез = Запроспроверки.Выполнить().Выгрузить();
      Если Рез = 0 Тогда
          всесоглосавали1 = Ложь;
      КонецЕсли;   
      Если Стр.Пользователь = ПараметрыСеанса.ТекущийПользователь Тогда
         ЭтотСогласующий1 = Истина;
      КонецЕсли;   
   КонецЦикла;   
   
   Если Не всесоглосавали1 Тогда
      
      Если ЭтотСогласующий1 Тогда
         Возврат;
      Иначе
         Предупреждение("Не завершен первый этап соглосования!");
      КонецЕсли;
      
   Иначе
      Если ЗначениеЗаполнено(ПервыйМаршрут.Родитель) Тогда
         //проверяем второй этап по анологии с первым
         всесоглосавали2 = Истина;
         ЭтотСогласующий2 = Ложь;
         ДЛя Каждого Стр2 Из ПервыйМаршрут.Родитель.СогласующиеЛица Цикл
            Запроспроверки2 = новый Запрос;
            Запроспроверки2.Текст =
            "ВЫБРАТЬ
            |   СостоянияСогласованияЗаявок.Пользователь,
            |   СостоянияСогласованияЗаявок.Заявка,
            |   СостоянияСогласованияЗаявок.Состояние
            |ИЗ
            |   РегистрСведений.СостоянияСогласованияЗаявок КАК СостоянияСогласованияЗаявок
            |ГДЕ
            |   СостоянияСогласованияЗаявок.Заявка = &Заявка
            |   И СостоянияСогласованияЗаявок.Пользователь = &Пользователь
            |   И СостоянияСогласованияЗаявок.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОбъектов.Согласован)";
            Запроспроверки2.УстановитьПараметр("заявка", Заявка);
            Запроспроверки2.УстановитьПараметр("Пользователь", Стр2.Пользователь);
            Рез2 = Запроспроверки2.Выполнить().Выгрузить();
            Если Рез2 = 0 Тогда
               всесоглосавали2 = Ложь;
            КонецЕсли;   
            Если Стр2.Пользователь = ПараметрыСеанса.ТекущийПользователь Тогда
               ЭтотСогласующий2 = Истина;
            КонецЕсли;   
         КонецЦикла;   
         
         Если Не всесоглосавали2 Тогда
            
            Если ЭтотСогласующий2 Тогда
               Возврат;
            Иначе
               Предупреждение("Не завершен второй этап соглосования!");
            КонецЕсли;
         ИНаче
            Если ЗначениеЗаполнено(ПервыйМаршрут.Родитель.Родитель) Тогда
                //////////**************//////////////////
                КонецЕсли;
         КонецЕсли;
         
      КонецЕсли;   
   КонецЕсли;   
//Для каждого уровня устроил проверку. Прописал всё вручную для каждого уровня.
Ход моих мыслей в правильном направлении или подскажите как  правильнее?
Добавлено: 24 Сен 2016, 00:42

Заявка = Документы.ЗаявкаНаРасходованиеСредств.ПустаяСсылка();
Передаю не пустую ссылку. ПустаяСсылка() только для тестирования(исправил)


Теги:
 

Внешняя обработка (внешняя печатная форма УТ ЗаказПокупателя)

Автор RusadmРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3715
Последний ответ 27 Май 2011, 15:23
от cska-fanat-kz
вопрос по конвертации 77-8 где находятся обработка и правила конвертации данных у конфигураций БУ, УПП, ЗУП

Автор ktu78Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 163
Последний ответ 28 Ноя 2016, 06:40
от cska-fanat-kz
как в цикле обратиться к значениям полей СхемаКомпоновкиДанных и где должна быть размещена обработка при отсутствии формы?

Автор sveta CРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 10
Просмотров: 843
Последний ответ 01 Мар 2016, 21:42
от sveta C
Может ли внешняя обработка работать с текстом кода модуля объекта документа?

Автор SeiOkamiРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1989
Последний ответ 27 Май 2012, 15:05
от Dethmontt
Как получить значение из файла с двоичными данными (управляемая форма, внешняя обработка)?

Автор РусланВалиевРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1297
Последний ответ 07 Апр 2015, 06:32
от РусланВалиев

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

MuI_I_Ika MuI_I_Ika
77 Сообщений
cska-fanat-kz cska-fanat-kz
67 Сообщений
alex0402
42 Сообщений
Kironten
42 Сообщений
alexandr_ll
34 Сообщений
LexaK
33 Сообщений
Андрей1966
26 Сообщений
djkeysi
24 Сообщений
sertak sertak
22 Сообщений
BuhRust
20 Сообщений

* Кто онлайн

  • Точка Гостей: 269
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal