Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )




>  Заполнение табличной части документа
Циган
Отправлено: 15.07.14, 11:14


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(1Cv77 @ 15.07.14, 11:08) *
Ну элементарно:

    Для Сч = НачМесяца(ДатаДок) По КонМесяца(ДатаДок) Цикл
        НоваяСтрока();
        Дата=НачМесяца(ДатаДок)+Сч-1;
    КонецЦикла;


там насчет Сч-1 проверьте

Что то не то. оно мне на дату документа 15.07.2014 заполняет 4-28.02.8741 и 1-6.03.8741)))
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #88816 · Ответов: 3 · Просмотров: 3011
 

>  Заполнение табличной части документа
Циган
Отправлено: 15.07.14, 9:28


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Здравствуйте уважаемые знатоки) Опять я пришел к вам с глупыми и детскими вопросами, но не к кому больше обратиться. Так вот, мне необходимо создать документ который бы при выборе сотрудника и нажатии на кнопку окей, в колонку табличной части проставлял даты месяца. Как мне организовать эту процедуру? Название процедуры - "заполнить", колонки - "Дата".
Заранее благодарю за ответ, ну или просто внимание.)
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #88810 · Ответов: 3 · Просмотров: 3011
 

>  не отрабатывае запрос в 7.7
Циган
Отправлено: 15.10.13, 7:42


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Всем спасибо. и таки правда нужна была функция. Запрос с выборкой из регистра, обязательно должен быть с функцией) Еще на одну долю стал умнее))))
Спасибо всем за помощь. icon_beer17.gif
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #76283 · Ответов: 18 · Просмотров: 5416
 

>  не отрабатывае запрос в 7.7
Циган
Отправлено: 14.10.13, 15:49


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(sava1 @ 14.10.13, 15:25) *
Результат запроса не пустой? Кажется мне, что там нужна функция...

Ну мне не нужны какие нибудь значения. Мне нужно проверить тот факт, если есть документ "приказ" (пр), то в регистре "время" за этот день в этого сотрудника в одном из столбцов "ВремяПоДням" было значение "выходной", если же документ, есть а "выходного" нет, выдавать сообщение.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #76242 · Ответов: 18 · Просмотров: 5416
 

>  не отрабатывае запрос в 7.7
Циган
Отправлено: 14.10.13, 14:19


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(pablo @ 14.10.13, 14:09) *
Значит у вас нет подходящих заполненных документов в базе.

Документы есть, ведь выполнение програмы выдает мне сообщение №3
сообщить("3 "+пр.сотрудник+" дата "+пр.датадок);

а вот уже группировку запроса, и дальше по коду не отрабатывается.
Регистр так же проверял, он заполнен за данный период.

Цитата(Домовик @ 14.10.13, 14:16) *
а сразу запрос сделать, чтобы не циклы в циклах? лучше так..

А как мне тогда проверять каждый день в заданном периоде? Тоесть приказы на некий день, и в этот день нужно проверить регистр.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #76235 · Ответов: 18 · Просмотров: 5416
 

>  не отрабатывае запрос в 7.7
Циган
Отправлено: 14.10.13, 14:06


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(Домовик @ 14.10.13, 13:57) *
Интересно вы как с предупреждением сделали. раз - и вылетели.

на да. параметры Дата1, Дата2 не указаны. (если на форме обработки не указаны)
вот эту строчку попробуйте закоментить и посмотреть.
  
  |Период с Дата1 по Дата2;


На форме диалога указаны Дата1 и Дата2.
Но все же закоментировал. Это ничего не дало, отрабатывается только до 3 сообщения.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #76232 · Ответов: 18 · Просмотров: 5416
 

>  не отрабатывае запрос в 7.7
Циган
Отправлено: 14.10.13, 13:57


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


"Сообщить" я вывел для того чтобы было видно на каком месте прекращается исполнение.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #76229 · Ответов: 18 · Просмотров: 5416
 

>  не отрабатывае запрос в 7.7
Циган
Отправлено: 14.10.13, 13:57


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(pablo @ 14.10.13, 13:45) *
Мне кажется, что в запрос нужно параметры передать.

То есть параметри? можно с примером, а то я салабон еще в этом деле)))
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #76227 · Ответов: 18 · Просмотров: 5416
 

>  не отрабатывае запрос в 7.7
Циган
Отправлено: 14.10.13, 13:30


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Здравствуйте уважемые. Работаю в предприятии 7.7 релиз (7.70.027).
Проблема следующего плана: создал обработку, которая должна проверять наличие выходного дня в регистре если за этот день для определенного работки есть "приказ на работу в выходной день".
Создал вот такую процедуру, но она отрабатывает только до запроса. Сам запрос не отрабатывает, в чем может быть проблема?
Процедура Проведение() 
    сообщить("1");
    ПР = СоздатьОбъект("Документ.ПриказРабота");
    Запрос2=СоздатьОбъект("Запрос");
    ТекстЗапроса="
    |Период с Дата1 по Дата2;
    |РегСотрудник           = Регистр.Время.Сотрудник;
    |РегВремяПоДням         = Регистр.Время.ВремяПоДням;
    |РегДатаДок                = Регистр.время.датадок;
    
    |Группировка РегДатаДок;
    |Группировка РегСотрудник Без Групп;
    |Группировка РегВремяПоДням;
        
    |";                                
    
    
    Если Запрос2.Выполнить(ТекстЗапроса)=0 тогда Предупреждение("Запит не виконано!"); Возврат; КонецЕсли;
    ПР.ВыбратьДокументы(Дата1,Дата2);
    Пока ПР.ПолучитьДокумент()=1 Цикл
        сообщить("2");
        ПР.ВыбратьСтроки();
        Пока ПР.ПолучитьСтроку()=1 Цикл
            сообщить("3 "+пр.сотрудник+" дата "+пр.датадок);
            Пока Запрос2.Группировка("РегДатаДок") = 1 цикл
                сообщить("4");
                Если ПР.датадок = Запрос2.РегдатаДок тогда
                    сообщить("5");
                    Пока Запрос2.Группировка("РегСотрудник")=1 Цикл
                        сообщить("6");
                        Если запрос2.регсотрудник = пр.сотрудник тогда
                            сообщить("7");
                            Пока Запрос2.Группировка("РегВремяПоДням")=1 Цикл
                                сообщить("8");
                                Если запрос2.регвремяподням = Перечисление.ВремяПоДням.Выходные тогда
                                    сообщить("Все документы перепроведены");
                                иначе      
                                    сообщить("Документ"+пр+"не має відповідності з шляховим листом. Перевірте проведення шляхового листа");
                                КонецЕсли;
                                
                            КонецЦикла;
                        иначе
                            продолжить;
                        КонецЕсли;
                    КонецЦикла;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
Конецпроцедуры
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #76225 · Ответов: 18 · Просмотров: 5416
 

>  Проверка перепроведения документа
Циган
Отправлено: 09.10.13, 7:58


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Доброго времени уважаемые знатоки help.gif
Необходимо написать код, который бы проверял перепроведение документов, после вступления в силу приказа о работе в выходной день.

Помоги пожалуйста малознающему)))) 09000000.gif


 ! 

Правила, п.3, 8, 9
у вас 11 сообщений, тема в корзину.
 
  Форум: Корзина · Просмотр сообщения: #75940 · Ответов: 0 · Просмотров: 1416
 

>  Нужна помощь с БухИтогами
Циган
Отправлено: 22.01.13, 9:10


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


доброго времени суток, попала мне в наследство модуль. Я никак не могу понять в чем дело.
Значить так: нужно было внести изменения задним числом, и после их внесения, во время формирования нарядов, непонятная ситуацыя.
Нужно чтобы система проверяла только данные на РабочуюДату. а оно гребёт все последующии дни за которые есть записи.
Можете сказать что заставляет модуль так себя вести?))))
Вот код:
Если Фневиходи=1 Тогда
        М  = СоздатьОбъект("Справочник.Маршруты");
        Ит = СоздатьОбъект("БухгалтерскиеИтоги");
        Сп = СоздатьОбъект("СписокЗначений");
        Ит.ИспользоватьСубконто(ВидыСубконто.ПричиныНевыходов,,1,);
        Ит.ИспользоватьКорСубконто(ВидыСубконто.Сотрудники,,1,);
        Ит.ВыполнитьЗапрос(РабочаяДата(),РабочаяДата(),СчетПоКоду("04"),,,,,);
        
        КолСтрок = 0;
        Стр = Симв(27)+"M"+Симв(27)+"x0"+Симв(27)+"W0"+Симв(27)+Симв(18);
        Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I"));
        
        М.ПорядокКодов();
        М.ВыбратьЭлементы();
        Пока М.ПолучитьЭлемент()=1 Цикл
            Если ПустаяСТрока(Фмаршрут)=0 Тогда //В розрезе марщрутов
                Если м.ТекущийЭлемент()<>Фмаршрут Тогда Продолжить; КонецЕсли;
            КонецЕсли;
            
            КолСтрок = 0;
            Стр = Симв(27)+"M"+Симв(27)+"x0"+Симв(27)+"W0"+Симв(27)+Симв(18);
            Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I"));
            
            Стр = "                      "+"НЕВИХОДИ на "+ РабочаяДата();
            Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
            ПустаяСтрочка(2);
            Стр = "      "+М.ТекущийЭлемент();
            Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
            ШапкаНевихода();
            
            Ит.ВыбратьСубконто();
            Пока Ит.ПолучитьСубконто()=1 Цикл
                Сп.УдалитьВсе();
                Ит.ВыбратьКорСубконто();
                Пока Ит.ПолучитьКорСубконто()=1 Цикл
                    Если Ит.КорСубконто().Маршрут.Получить(РабочаяДата())=М.ТекущийЭлемент() Тогда
                        Сп.Установить(Прав("      "+Строка(Ит.КорСубконто().Код),6),Ит.КорСубконто());
                    КонецЕсли;
                КонецЦикла;
                
                Если Сп.РазмерСписка()>0 Тогда
                    Стр = "";
                    Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
                    
                    Стр = "     "+Строка(Ит.СубКонто());
                    Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
                    
                    Стр = "--------------------------------------------------------------------------------";
                    Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
                    
                    Сп.СортироватьПоПредставлению();
                    Для НомПП=1 По Сп.РазмерСписка() Цикл
                        Сотрудник = Сп.ПолучитьЗначение(НомПП);
                        Стр = Формат(НомПП,"С5")+Формат(Сотрудник.Код,"Ч9")+"   "+
                        Формат(ФИО(Сотрудник.Наименование),"С30")+" "+
                        Формат(Сотрудник.Должность.Получить(РабочаяДата()),"С14")+" ";
                        Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
                        
                        Если  КолСтрок+8>КоличествоСтрок Тогда
                            ДоконцаСтраницы();
                            КолСТрок = 0;
                            Стр = Симв(27)+"M"+Симв(27)+"x0"+Симв(27)+"W0"+Симв(27)+Симв(18);
                            Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I"));
                            Стр = "     "+Строка(Ит.СубКонто());
                            Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
                            Стр="--------------------------------------------------------------------------------";
                            Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
                        КонецЕсли;
                    КонецЦикла;
                    ПустаяСтрочка(4);
                КонецЕсли;
            КонецЦикла;
            
            Стр = "           НАРЯДНИК      _________________________________";
            Текст.ДобавитьСтроку(СтрЗаменить(СтрЗаменить(Стр,"і","i"),"І","I")); КолСтрок = КолСтрок+1;
            ПустаяСтрочка(1);
            Если КолСтрок>55 Тогда
                ДоконцаСтраницы();
                КолСТрок = 0;
            КонецЕсли;
        КонецЦикла;
        Если  КолСТрок<>0 Тогда
            ДоконцаСтраницы();
            КолСТрок = 0;
        КонецЕсли;
    КонецЕсли
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #63575 · Ответов: 4 · Просмотров: 3094
 

>  Вигрузка данних з ТЗ1 в ТЗ2
Циган
Отправлено: 28.11.12, 12:57


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Доброго дня. Маю таку проблему. Незнаю як сформулювать код для вигрузки даних з однієї таблиці значень в іншу. Мені потрібно з ТЗ1 перенести данні одного стовбчика в ТЗ2. Але перед цим перевіривши відповідність кодів працівників в кожній з таблиць.
Тобто маю одну таблицю з колонками ТЗ1( "MES,TN,M","RD,LIN,HOL_HOD,PZ,......,") та другу ТЗ2(""MES,TN","RD,LIN,HOL_HOD,PZ").
Після звертання, такого як мені потрібно в ТЗ1 TN маэ 2 або більше строк, а ТЗ2 лише одну. Потрібно перенести значення RD з ТЗ2 в ТЗ1. як це можна здійснить? заздалегідь дякую за допомогу. І наперед вибачьте за неграмотність формулювання, так як 1с вчу самостійно.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #61070 · Ответов: 3 · Просмотров: 2850
 

>  Дата в колонтитулах
Циган
Отправлено: 06.11.12, 8:11


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Скажите пожалуйста, как поставить дату создания отчтета в колонтытулах, для выввода на печать.

Дата должна быть на каждом новом печатном листке.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #59807 · Ответов: 1 · Просмотров: 2567
 

>  Заповнення ТЗ з регистра
Циган
Отправлено: 23.10.12, 9:15


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Но я еще буду обращяться, ето только начало)))
Буду очень благодарен за помощь) icon_beer17.gif

Цитата(Vofka @ 23.10.12, 10:13) *
Ну так жмите палец помогающему.

Нажал)
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #58948 · Ответов: 16 · Просмотров: 5642
 

>  Заповнення ТЗ з регистра
Циган
Отправлено: 23.10.12, 9:13


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(lga_ @ 23.10.12, 9:58) *
Проблема в том, что нельзя делать запрос к регистру без указания Ресурса. Как я понял Сотрудник и Маршрут это Измерения. Добавьте Ресурс и должно заработать.

И правда заработало) Спасибо за помощь, етот момент я упустил(((

Цитата(sava1 @ 23.10.12, 10:10) *
Да. Добавить в запрос Функция Мин = Сумма(Минуты)

имено оно) спасибо)
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #58946 · Ответов: 16 · Просмотров: 5642
 

>  Заповнення ТЗ з регистра
Циган
Отправлено: 23.10.12, 9:08


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(sava1 @ 23.10.12, 9:54) *
Структура регистра какая?

Измерения:
Сотрудник(Справочник.Сотрудники)
УчетноеСобытие(Справочник.УчетныеСобытия)
ВремяУчета(Перечисление.ВремяУчета)
ВремяПоДням(Перечисление.ВремяПоДням)
ВремяПоВремениСуток(Перечисление.ВремяПоВремениСуток)
Маршрут(Справочник.Маршрут)
Тариф(Справочник.Тарифы)
Машина(Справочник.Машины)
ДатаДок(дата)
Ресурсы:
минуты(число)

Вы ето имеете ввиду?
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #58943 · Ответов: 16 · Просмотров: 5642
 

>  Заповнення ТЗ з регистра
Циган
Отправлено: 23.10.12, 8:53


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(sava1 @ 23.10.12, 9:51) *
А данные хоть есть? Вроде все правильно. Начало ,конец периода точно есть ?

так. вони задаються при відкритті обработки.
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #58938 · Ответов: 16 · Просмотров: 5642
 

>  Заповнення ТЗ з регистра
Циган
Отправлено: 23.10.12, 8:48


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Цитата(MATEVI @ 23.10.12, 9:37) *
ВыбратьСтроки()

, а не строку

так ето я просто открываю себе ТЗ, чтоб посмотреть заполнена она или нет.


Цитата(sava1 @ 23.10.12, 9:44) *
А это к чему ?

ТС - регистр какой - оборотный или остатков ?

Регистр - оборотный.

Может там нада задать период выборки регистр "ИспользоватьПериод();"?
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #58936 · Ответов: 16 · Просмотров: 5642
 

>  Заповнення ТЗ з регистра
Циган
Отправлено: 23.10.12, 8:14


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Доброго дня панове. в мене така проблемка, починаю я програмувати в 1С 7.7, і застряв на такому: потрібно з регистра. після прописаного коду, моя ТЗ пуста, не заповнюється. В чому може бути проблема? допоможіть, і не сваріть сильно)!
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.Очистить();
    ТЗ.НоваяКолонка("Сотрудник","Справочник.Сотрудники");
    ТЗ.НоваяКолонка("Маршрут"  ,"Справочник.Маршруты");

    ТекстЗапроса="
    |Период с ВыбНачПериода по ВыбКонПериода;
    |РегСотрудник      = Регистр.Время.Сотрудник;
    |РегМаршрут        = Регистр.Время.Маршрут;
        
    |Группировка РегСотрудник Без Групп;
    |Группировка РегМаршрут Без Групп;

    |";
  
       Запрос=СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса)=0 тогда Предупреждение("Запит не виконано!"); Возврат; КонецЕсли;
    
    Пока Запрос.Группировка("РегСотрудник")=1 Цикл
        Пока Запрос.Группировка("РегМаршрут")=1 Цикл
            ТЗ.НоваяСтрока();
                ТЗ.Сотрудник = Запрос.РегСотрудник;
            ТЗ.Маршрут   = Запрос.РегМаршрут;
        КонецЦикла;
    КонецЦикла;
     ТЗ.выбратьстроку();
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #58933 · Ответов: 16 · Просмотров: 5642
 

>  Створення документа
Циган
Отправлено: 09.08.12, 7:49


Общительный
**

Группа: Пользователи
Сообщений: 20
Регистрация: 08.08.12
Пользователь №: 19665


Шановне панство, потребую вашої допомоги. При редагуванні, не мною створенного, кода документа, не можу зрозуміти однієї речі: чому не вираховується значення "сверхурочных" в таблиці значень?
Попробую пояснить. з таблиці значень в форму заносяьтся дані, і в залежності від дати створення документу потрібно або всіх працівників вивести, або деякіх, це все здійснюється. але при виборці деякіх працівників не заповнюється колонки з значеннями. Додаю код процедури "заполнить", яка заповнює форму.
Процедура Заполнить3()
Если ТекущийДокумент().Проведен()=1 Тогда Предупреждение("Скасуйте проведення"); Возврат; КонецЕсли;
    Если КоличествоСтрок()<>0 тогда
        Если Вопрос("Будемо робити розрахунок по новому?","Да+Нет")="Нет" Тогда Возврат; КонецЕсли;
    КонецЕсли;
    УдалитьСтроки();

    ТЗрег = СоздатьОбъект("ТаблицаЗначений");
    ТЗрег.Очистить();
    ТЗрег.НоваяКолонка("Сотрудник","Справочник.Сотрудники");
    ТЗрег.НоваяКолонка("Должность","Справочник.Должности");
    ТЗрег.НоваяКолонка("День"     ,"Дата");
    ТЗрег.НоваяКолонка("Маршрут"  ,"Справочник.Маршруты");
    ТЗрег.НоваяКолонка("Тариф"    ,"Справочник.Тарифы");
    ТЗрег.НоваяКолонка("Машина"   ,"Справочник.Машины");
    ТЗрег.НоваяКолонка("ТипМашины","Справочник.ТипыМашин");
    ТЗрег.НоваяКолонка("ОтработаноДней"   ,"Число",15,0);
    ТЗрег.НоваяКолонка("НевиходДней"      ,"Число",15,0);
    ТЗрег.НоваяКолонка("ВиходнихДней"     ,"Число",15,0);
    ТЗрег.НоваяКолонка("РаботаУвиходной"  ,"Число",15,0);
    ТЗрег.НоваяКолонка("ОтработаноВремени","Число",15,0);
    
    Рег = СоздатьОбъект("Регистр.Время");
    Если ПолучитьДатуТА()>ДатаДок тогда
    РассчитатьРегистрыПо(ДатаДок);
    КонецЕсли;

    ТекстЗапроса="
    |Период с {НачМесяца(ДатаДок)} по (ДатаДок);
    |РегСотрудник           = Регистр.Время.Сотрудник;
    |РегУчетноеСобытие      = Регистр.Время.УчетноеСобытие;
    |РегВремяУчета          = Регистр.Время.ВремяУчета;
    |РегВремяПоДням         = Регистр.Время.ВремяПоДням;
    |РегВремяПоВремениСуток = Регистр.Время.ВремяПоВремениСуток;
    |РегМаршрут             = Регистр.Время.Маршрут;
    |РегТариф               = Регистр.Время.Тариф;
    |РегМашина              = Регистр.Время.Машина;
        |РегДатаДок             = Регистр.Время.ДатаДок;
    |РегМинутыВыб           = Регистр.Время.Минуты;
    |Условие(РегВремяПоДням.Выбран()=1);
    
    |Группировка РегСотрудник Без Групп;
    |Группировка РегУчетноеСобытие Без Групп;
    |Группировка РегВремяУчета;
    |Группировка РегВремяПоДням;
    |Группировка РегВремяПоВремениСуток;
    |Группировка РегМаршрут Без Групп;
    |Группировка РегТариф Без Групп;
    |Группировка РегМашина Без Групп;
    |Группировка РегДатаДок;
    
    |Функция Сума  = Сумма(РегМинутыВыб);
    |";
    
    Запрос=СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса)=0 тогда Предупреждение("Запит не виконано!"); Возврат; КонецЕсли;
        Рег = СоздатьОбъект("Регистр.Невыходы");
    Если ПолучитьДатуТА()>ДатаДок тогда
        РассчитатьРегистрыПо(ДатаДок);
    КонецЕсли;
    
    ТекстЗапросаНевиход="
    |Период с {НачМесяца(ДатаДок)} по (ДатаДок);
    |РегСотрудник       = Регистр.Невыходы.Сотрудник;
    |РегМаршрут         = Регистр.Невыходы.Маршрут;
    |РегТариф           = Регистр.Невыходы.Тариф;
    |РегПричинаНевыхода = Регистр.Невыходы.ПричинаНевыхода;
    |РегДатаДок         = Регистр.Невыходы.ДатаДок;
    |РегМинутыВыб       = Регистр.Невыходы.Минуты;
    |РегФл              = Регистр.Невыходы.Фл;

    |Группировка РегСотрудник Без Групп;
    |Группировка РегМаршрут Без Групп;
    |Группировка РегТариф Без Групп;
    |Группировка РегПричинаНевыхода Без Групп;
    |Группировка РегДатаДок;
    
    |Функция Сума   = Сумма(РегМинутыВыб);
    |Функция СумаФл = Сумма(РегФл);
    |";
    
    ЗапросНевиход=СоздатьОбъект("Запрос");
    Если ЗапросНевиход.Выполнить(ТекстЗапросаНевиход)=0 тогда Предупреждение("Запит не виконано!"); Возврат; КонецЕсли;
    Пока Запрос.Группировка("РегСотрудник")=1 Цикл  
           если (датадок<>конмесяца(датадок)) и (датадок=запрос.регсотрудник.датаувольнения) тогда
            Пока Запрос.Группировка("РегУчетноеСобытие")=1 Цикл
                Пока Запрос.Группировка("РегВремяУчета")=1 Цикл
                    Пока Запрос.Группировка("РегВремяПоДням")=1 Цикл
                        Пока Запрос.Группировка("РегВремяПоВремениСуток")=1 Цикл
                            Пока Запрос.Группировка("РегМаршрут")=1 Цикл
                                Пока Запрос.Группировка("РегТариф")=1 Цикл
                                    Пока Запрос.Группировка("РегМашина")=1 Цикл
                                        Пока Запрос.Группировка("РегДатаДок")=1 Цикл
                                            ТЗрег.НоваяСтрока();
                                            ТЗрег.Сотрудник = Запрос.РегСотрудник;
                                            ТЗрег.Должность = Запрос.РегСотрудник.Должность.Получить(Запрос.РегДатаДок);
                                            ТЗрег.Маршрут   = Запрос.РегМаршрут;
                                            ТЗрег.Тариф     = Запрос.РегТариф;
                                            ТЗрег.Машина    = Запрос.РегМашина;
                                            Если Запрос.РегМашина.Выбран()=1 Тогда ТЗрег.ТипМашины = Запрос.РегМашина.ТипМашины; КонецЕсли;
                                            ТЗрег.День      = Запрос.РегДатаДок;
                                            Состояние("Робота "+Запрос.РегДатаДок+" "+Запрос.РегСотрудник);
                                            ТЗрег.ОтработаноВремени = Запрос.Сума;
                                            ТЗрег.ОтработаноДней    = 1;
                                            Если Запрос.РегВремяПоДням=Перечисление.ВремяПоДням.Выходные Тогда
                                                ТЗрег.РаботаУвиходной = Запрос.Сума;
                                            КонецЕсли;
                                        КонецЦикла;
                                    КонецЦикла;
                                КонецЦикла;
                            КонецЦикла;
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        иначе
            Если (датадок=конмесяца(датадок)) и ((датадок<запрос.регсотрудник.датаувольнения) или (датадок=запрос.регсотрудник.датаувольнения) или (Запрос.регсотрудник.датаувольнения=дата(0))) тогда
                Пока Запрос.Группировка("РегУчетноеСобытие")=1 Цикл
                    Пока Запрос.Группировка("РегВремяУчета")=1 Цикл
                        Пока Запрос.Группировка("РегВремяПоДням")=1 Цикл
                            Пока Запрос.Группировка("РегВремяПоВремениСуток")=1 Цикл
                                Пока Запрос.Группировка("РегМаршрут")=1 Цикл
                                    Пока Запрос.Группировка("РегТариф")=1 Цикл
                                        Пока Запрос.Группировка("РегМашина")=1 Цикл
                                            Пока Запрос.Группировка("РегДатаДок")=1 Цикл
                                                ТЗрег.НоваяСтрока();
                                                ТЗрег.Сотрудник = Запрос.РегСотрудник;
                                                ТЗрег.Должность = Запрос.РегСотрудник.Должность.Получить(Запрос.РегДатаДок);
                                                ТЗрег.Маршрут   = Запрос.РегМаршрут;
                                                ТЗрег.Тариф     = Запрос.РегТариф;
                                                ТЗрег.Машина    = Запрос.РегМашина;
                                                Если Запрос.РегМашина.Выбран()=1 Тогда ТЗрег.ТипМашины = Запрос.РегМашина.ТипМашины; КонецЕсли;
                                                ТЗрег.День      = Запрос.РегДатаДок;
                                                Состояние("Робота "+Запрос.РегДатаДок+" "+Запрос.РегСотрудник);
                                                ТЗрег.ОтработаноВремени = Запрос.Сума;
                                                ТЗрег.ОтработаноДней    = 1;
                                                Если Запрос.РегВремяПоДням=Перечисление.ВремяПоДням.Выходные Тогда
                                                    ТЗрег.РаботаУвиходной = Запрос.Сума;
                                                КонецЕсли;
                                            КонецЦикла;
                                        КонецЦикла;
                                    КонецЦикла;
                                КонецЦикла;
                            КонецЦикла;
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            конецесли;
        конецесли;  
    КонецЦикла;
    Пока ЗапросНевиход.Группировка("РегСотрудник")=1 Цикл
        если (датадок<>конмесяца(датадок)) и (датадок=запросневиход.регсотрудник.датаувольнения) тогда
            Пока ЗапросНевиход.Группировка("РегМаршрут")=1 Цикл
                Пока ЗапросНевиход.Группировка("РегТариф")=1 Цикл
                    Пока ЗапросНевиход.Группировка("РегПричинаНевыхода")=1 Цикл
                        Пока ЗапросНевиход.Группировка("РегДатаДок")=1 Цикл
                            ТЗрег.НоваяСтрока();
                            ТЗрег.Сотрудник = ЗапросНевиход.РегСотрудник;
                            ТЗрег.Должность = ЗапросНевиход.РегСотрудник.Должность.Получить(ЗапросНевиход.РегДатаДок);
                            ТЗрег.Маршрут   = ЗапросНевиход.РегМаршрут;
                            ТЗрег.Тариф     = ЗапросНевиход.РегТариф;
                            ТЗрег.День      = ЗапросНевиход.РегДатаДок;
                            Состояние("Невихiд "+ЗапросНевиход.РегДатаДок+" "+ЗапросНевиход.РегСотрудник);
                            ТЗрег.НевиходДней  = 1;
                            Если (ЗапросНевиход.РегПричинаНевыхода.Код="1") или (ЗапросНевиход.РегПричинаНевыхода.Код="10") Тогда // виходной или Прогули
                                ТЗрег.ВиходнихДней  = 1;
                            КонецЕсли;
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        иначе
            Если (датадок=конмесяца(датадок)) и ((датадок<запрос.регсотрудник.датаувольнения) или (датадок=запрос.регсотрудник.датаувольнения) или (Запрос.регсотрудник.датаувольнения=дата(0))) тогда
                Пока ЗапросНевиход.Группировка("РегМаршрут")=1 Цикл
                    Пока ЗапросНевиход.Группировка("РегТариф")=1 Цикл
                        Пока ЗапросНевиход.Группировка("РегПричинаНевыхода")=1 Цикл
                            Пока ЗапросНевиход.Группировка("РегДатаДок")=1 Цикл
                                ТЗрег.НоваяСтрока();
                                ТЗрег.Сотрудник = ЗапросНевиход.РегСотрудник;
                                ТЗрег.Должность = ЗапросНевиход.РегСотрудник.Должность.Получить(ЗапросНевиход.РегДатаДок);
                                ТЗрег.Маршрут   = ЗапросНевиход.РегМаршрут;
                                ТЗрег.Тариф     = ЗапросНевиход.РегТариф;
                                ТЗрег.День      = ЗапросНевиход.РегДатаДок;
                                Состояние("Невихiд "+ЗапросНевиход.РегДатаДок+" "+ЗапросНевиход.РегСотрудник);
                                ТЗрег.НевиходДней  = 1;
                                Если (ЗапросНевиход.РегПричинаНевыхода.Код="1") или (ЗапросНевиход.РегПричинаНевыхода.Код="10") Тогда // виходной или Прогули
                                    ТЗрег.ВиходнихДней  = 1;
                                КонецЕсли;
                            КонецЦикла;                                                
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            конецесли;
        конецесли;
    КонецЦикла;
    ТЗрег.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины,День","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗрег.Сортировать("+Сотрудник,+Должность,+Маршрут,+Тариф,+Машина,+День");
    ТЗдень = СоздатьОбъект("ТаблицаЗначений");
    ТЗдень.Очистить();
    ТЗрег.Выгрузить(ТЗдень);
    ТЗдень.Свернуть("Сотрудник,Должность,День","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗдень.ВыбратьСтроки();
Пока ТЗдень.ПолучитьСтроку()=1 Цикл
        Состояние("7 - 1. "+Окр(100/7*ТЗдень.НомерСтроки/ТЗдень.КоличествоСтрок(),2)+"%");
        Если ТЗдень.ПолучитьЗначение(ТЗдень.НомерСтроки,"ОтработаноДней")>1 Тогда ТЗдень.УстановитьЗначение(ТЗдень.НомерСтроки,"ОтработаноДней",1); КонецЕсли;
        Если ТЗдень.ПолучитьЗначение(ТЗдень.НомерСтроки,"НевиходДней")>1 Тогда ТЗдень.УстановитьЗначение(ТЗдень.НомерСтроки,"НевиходДней",1);
        Если ТЗдень.ПолучитьЗначение(ТЗдень.НомерСтроки,"ВиходнихДней")>0 Тогда ТЗдень.УстановитьЗначение(ТЗдень.НомерСтроки,"ВиходнихДней",0); КонецЕсли;
        КонецЕсли;
    КонецЦикла;  
  ТЗсверхурочные = СоздатьОбъект("ТаблицаЗначений");
    ТЗсверхурочные.Очистить();
    ТЗдень.Выгрузить(ТЗсверхурочные);
    ТЗсверхурочные.Свернуть("Сотрудник,Должность","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗсверхурочные.Сортировать("+Сотрудник,+Должность");
    ТЗсверхурочные.ВставитьКолонку("СверхУрочные",,"Число",15,0);
    ТЗсверхурочные.ВставитьКолонку("РаботаУвиходнойОплата",,"Число",15,0);
    ТЗмашина = СоздатьОбъект("ТаблицаЗначений");
    ТЗмашина.Очистить();
    ТЗрег.Выгрузить(ТЗмашина);
    ТЗмашина.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗмашина.Сортировать("+Сотрудник,+Должность,-ТипМашины,+Тариф,-ОтработаноВремени,+Машина,+Маршрут");
    к = 0; КолСтрТЗсверхурочные = ТЗсверхурочные.КоличествоСтрок();
    Для сч=1 по КолСтрТЗсверхурочные Цикл
        Состояние("7 - 2. "+(Окр(100/7,2)+Окр(100/7*сч/(КолСтрТЗсверхурочные-к),2))+"%");
        ОтработаноВремени = ТЗсверхурочные.ПолучитьЗначение(сч-к,"ОтработаноВремени");                          
        ОтработаноДней    = ТЗсверхурочные.ПолучитьЗначение(сч-к,"ОтработаноДней");
        ВиходнихДней      = ТЗсверхурочные.ПолучитьЗначение(сч-к,"ВиходнихДней");
        РаботаУвиходной   = ТЗсверхурочные.ПолучитьЗначение(сч-к,"РаботаУвиходной");
        Сверхурочние = ОтработаноВремени - Константа.НормаМинут.Получить(ДатаДок)/ДатаЧисло(ДатаДок)*(ОтработаноДней+ВиходнихДней);
                Если (Сверхурочние-РаботаУвиходной>0) или (РаботаУвиходной>0) Тогда
            //Если (Сверхурочние>0) или (ТЗсверхурочные.ПолучитьЗначение(сч-к,"РаботаУвиходной")>0) Тогда
            
            Если Сверхурочние-РаботаУвиходной>0 Тогда
                ТЗсверхурочные.УстановитьЗначение(сч-к,"СверхУрочные",Сверхурочние-РаботаУвиходной);
                Если РаботаУвиходной>0 Тогда
                    ТЗсверхурочные.УстановитьЗначение(сч-к,"РаботаУвиходнойОплата",РаботаУвиходной);
                КонецЕсли;
            Иначе
                Если Сверхурочние>0 Тогда
                    ТЗсверхурочные.УстановитьЗначение(сч-к,"РаботаУвиходнойОплата",Сверхурочние);
                КонецЕсли;
            КонецЕсли;
    Иначе
            кМашина = 0;
            Для счМашина=1 по ТЗмашина.КоличествоСтрок() Цикл
                Если ТЗсверхурочные.ПолучитьЗначение(сч-к,"Сотрудник")=ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"Сотрудник") Тогда
                    Если ТЗсверхурочные.ПолучитьЗначение(сч-к,"Должность")=ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"Должность") Тогда
                        ТЗмашина.УдалитьСтроку(счМашина-кМашина); кМашина = кМашина+1;
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;
            ТЗсверхурочные.УдалитьСтроку(сч-к); к = к+1;  
        КонецЕсли;
    КонецЦикла;
    кМашина = 0; КолСтрТЗмашина = ТЗмашина.КоличествоСтрок();

    Для счМашина=1 по КолСтрТЗмашина Цикл
        Состояние("7 - 3. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*счМашина/(КолСтрТЗмашина-кМашина),2))+"%");
        Если (ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"ОтработаноДней")=0) и (ТЗмашина.ПолучитьЗначение(счМашина-кМашина,"ОтработаноВремени")=0) Тогда
            ТЗмашина.УдалитьСтроку(счМашина-кМашина); кМашина = кМашина+1;
        КонецЕсли;
    КонецЦикла;
    Сотр_1 = "";
    Должность_1 = "";
    Маршрут_1 = "";
    Тариф_1 = "";
    Машина_1 = "";
    ТипМашины_1 = ""; КолСтрТЗмашина = ТЗмашина.КоличествоСтрок();
    сообщить("  "+ТЗмашина.КоличествоСтрок());  
    ТЗмашина.выбратьстроку();
    Для сч=1 по КолСтрТЗмашина Цикл
        Состояние("7 - 4. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*сч/(КолСтрТЗмашина),2))+"%");
        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч,"ТипМашины"))<>"" Тогда
            Если Сотр_1<>ТЗмашина.ПолучитьЗначение(сч,"Сотрудник") Тогда
                Сотр_1      = ТЗмашина.ПолучитьЗначение(сч,"Сотрудник");
                Должность_1 = ТЗмашина.ПолучитьЗначение(сч,"Должность");
                Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
                ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
            Иначе
                Если Должность_1<>ТЗмашина.ПолучитьЗначение(сч,"Должность") Тогда
                    Должность_1 = ТЗмашина.ПолучитьЗначение(сч,"Должность");
                    Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
                    ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                    Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                    Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
                Иначе
                    Если Тариф_1<>ТЗмашина.ПолучитьЗначение(сч,"Тариф") Тогда
                        Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
                        ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                        Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                        Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
                    КонецЕсли;
                    Если ТипМашины_1<>ТЗмашина.ПолучитьЗначение(сч,"ТипМашины") Тогда
                        ТипМашины_1 = ТЗмашина.ПолучитьЗначение(сч,"ТипМашины");
                        Машина_1    = ТЗмашина.ПолучитьЗначение(сч,"Машина");
                        Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
                    КонецЕсли;
                    ТЗмашина.УстановитьЗначение(сч,"Сотрудник",Сотр_1);
                    ТЗмашина.УстановитьЗначение(сч,"Должность",Должность_1);
                    ТЗмашина.УстановитьЗначение(сч,"Тариф",Тариф_1);
                    ТЗмашина.УстановитьЗначение(сч,"ТипМашины",ТипМашины_1);
                    ТЗмашина.УстановитьЗначение(сч,"Машина",Машина_1);
                    ТЗмашина.УстановитьЗначение(сч,"Маршрут",Маршрут_1);
                КонецЕсли;
            КонецЕсли;
        Иначе
        КонецЕсли;
    КонецЦикла;
    ТЗмашина.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗмашина.Сортировать("+Сотрудник,+Должность,+ТипМашины,+Тариф,-ОтработаноВремени,+Машина,+Маршрут");
    НомСтр = 0;
    Сотр_1 = "";
    Должность_1 = "";
    Маршрут_1 = "";
    Тариф_1 = "";
    Машина_1 = "";
    ТипМашины_1 = "";
    Для сч=1 по ТЗмашина.КоличествоСтрок() Цикл
        Состояние("7 - 5. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*сч/(ТЗмашина.КоличествоСтрок()),2))+"%");
        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч,"ТипМашины"))="" Тогда
            НомСтр = сч;
            Сотр_1      = ТЗмашина.ПолучитьЗначение(сч,"Сотрудник");
            Должность_1 = ТЗмашина.ПолучитьЗначение(сч,"Должность");
            Тариф_1     = ТЗмашина.ПолучитьЗначение(сч,"Тариф");
            Маршрут_1   = ТЗмашина.ПолучитьЗначение(сч,"Маршрут");
        Иначе
            Если НомСтр>0 Тогда
                Нашол = 0;
                Для сч1=1 по ТЗмашина.КоличествоСтрок() Цикл
                    Если ТЗмашина.ПолучитьЗначение(сч1,"Сотрудник")<>Сотр_1 Тогда Продолжить; КонецЕсли;
                    Если ТЗмашина.ПолучитьЗначение(сч1,"Должность")<>Должность_1 Тогда Продолжить; КонецЕсли;
                    Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч1,"ТипМашины"))="" Тогда Продолжить; КонецЕсли;
                    Если ТЗмашина.ПолучитьЗначение(сч1,"Тариф")=Тариф_1 Тогда
                        Если Нашол=0 Тогда Нашол=сч1; КонецЕсли;
                    КонецЕсли;
                КонецЦикла;
                Если Нашол>0 Тогда
                    Тариф_1     = ТЗмашина.ПолучитьЗначение(Нашол,"Тариф");
                    ТипМашины_1 = ТЗмашина.ПолучитьЗначение(Нашол,"ТипМашины");
                    Машина_1    = ТЗмашина.ПолучитьЗначение(Нашол,"Машина");
                    Маршрут_1   = ТЗмашина.ПолучитьЗначение(Нашол,"Маршрут");
                    ТЗмашина.УстановитьЗначение(НомСтр,"Тариф",Тариф_1);
                    ТЗмашина.УстановитьЗначение(НомСтр,"ТипМашины",ТипМашины_1);
                    ТЗмашина.УстановитьЗначение(НомСтр,"Машина",Машина_1);
                    ТЗмашина.УстановитьЗначение(НомСтр,"Маршрут",Маршрут_1);
                Иначе
                    Нашол_1 = 0;
                    Для сч1=1 по ТЗмашина.КоличествоСтрок() Цикл
                        Если ТЗмашина.ПолучитьЗначение(сч1,"Сотрудник")<>Сотр_1 Тогда Продолжить; КонецЕсли;
                        Если ТЗмашина.ПолучитьЗначение(сч1,"Должность")<>Должность_1 Тогда Продолжить; КонецЕсли;
                        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч1,"ТипМашины"))="" Тогда Продолжить; КонецЕсли;
                        Если СокрЛП(ТЗмашина.ПолучитьЗначение(сч1,"Машина"))<>"" Тогда
                            Если Нашол_1=0 Тогда Нашол_1=сч1; КонецЕсли;
                        КонецЕсли;
                    КонецЦикла;
                    Если Нашол_1>0 Тогда
                        Тариф_1     = ТЗмашина.ПолучитьЗначение(Нашол_1,"Тариф");
                        ТипМашины_1 = ТЗмашина.ПолучитьЗначение(Нашол_1,"ТипМашины");
                        Машина_1    = ТЗмашина.ПолучитьЗначение(Нашол_1,"Машина");
                        Маршрут_1   = ТЗмашина.ПолучитьЗначение(Нашол_1,"Маршрут");
                        ТЗмашина.УстановитьЗначение(НомСтр,"Тариф",Тариф_1);
                        ТЗмашина.УстановитьЗначение(НомСтр,"ТипМашины",ТипМашины_1);
                        ТЗмашина.УстановитьЗначение(НомСтр,"Машина",Машина_1);
                        ТЗмашина.УстановитьЗначение(НомСтр,"Маршрут",Маршрут_1);
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ТЗмашина.Свернуть("Сотрудник,Должность,Маршрут,Тариф,Машина,ТипМашины","ОтработаноДней,НевиходДней,ВиходнихДней,РаботаУвиходной,ОтработаноВремени");
    ТЗмашина.Сортировать("+Сотрудник,+Должность,+ТипМашины,+Тариф,-ОтработаноВремени,+Машина,+Маршрут");
    ТЗсверхурочные.ВставитьКолонку("КолСтрМашина",,"Число",15,0);
    Сотр_2 = ""; Должность_2 = ""; КолСтрМашина = 0;
    ТЗмашина.ВыбратьСтроки();
    Пока ТЗмашина.ПолучитьСтроку()=1 Цикл
        Состояние("7 - 6. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*ТЗмашина.НомерСтроки/(ТЗмашина.КоличествоСтрок()),2))+"%");
        Если Сотр_2="" Тогда
            КолСтрМашина = 1;
            Сотр_2       = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник");
            Должность_2  = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
        Иначе
            Если ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник")<>Сотр_2 Тогда
                Если КолСтрМашина>0 Тогда
                    ТЗсверхурочные.ВыбратьСтроки();
                    Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
                        Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")=Сотр_2 Тогда
                            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")=Должность_2 Тогда
                                ТЗсверхурочные.УстановитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина",КолСтрМашина);
                            КонецЕсли;
                        КонецЕсли;
                    КонецЦикла;
                КонецЕсли;
                КолСтрМашина = 1;
                Сотр_2       = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник");
                Должность_2  = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
            Иначе
                Если ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность")<>Должность_2 Тогда
                    Если КолСтрМашина>0 Тогда
                        ТЗсверхурочные.ВыбратьСтроки();
                        Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
                            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")=Сотр_2 Тогда
                                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")=Должность_2 Тогда
                                    ТЗсверхурочные.УстановитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина",КолСтрМашина);
                                КонецЕсли;
                            КонецЕсли;
                        КонецЦикла;
                    КонецЕсли;
                    КолСтрМашина = 1;
                    Должность_2  = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
                Иначе
                    КолСтрМашина = КолСтрМашина+1;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Если КолСтрМашина>0 Тогда
        ТЗсверхурочные.ВыбратьСтроки();
        Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")=Сотр_2 Тогда
                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")=Должность_2 Тогда
                    ТЗсверхурочные.УстановитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина",КолСтрМашина);
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    ТЗсверхурочные.ВыбратьСтроки();
    Пока ТЗсверхурочные.ПолучитьСтроку()=1 Цикл
        Состояние("7 - 7. "+(Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7,2)+Окр(100/7*ТЗсверхурочные.НомерСтроки/(ТЗсверхурочные.КоличествоСтрок()),2))+"%");
        СумаНадурочних = 0; КолСтрМашина = 0; СумаВиходних = 0;
        Надурочние = 0; Виходние = 0;
        ТЗмашина.ВыбратьСтроки();
        Пока ТЗмашина.ПолучитьСтроку()=1 Цикл
            Надурочние = 0; Виходние = 0;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник")<>ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Сотрудник") Тогда Продолжить; КонецЕсли;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Должность")<>ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность") Тогда Продолжить; КонецЕсли;
            КолСтрМашина = КолСтрМашина+1;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")<>0 Тогда
                Надурочние = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")/ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"ОтработаноВремени")*ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"ОтработаноВремени");
            КонецЕсли;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")<>0 Тогда
                Виходние = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")/ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходной")*ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"РаботаУвиходной");
            КонецЕсли;
            НоваяСтрока();
            Сотрудник    = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник");
            ТН           = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"Сотрудник").Код;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")-СумаНадурочних-Окр(Надурочние,0)>=0 Тогда
                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина")=КолСтрМашина Тогда
                    СверхУрочные = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")-СумаНадурочних;
                Иначе
                    СверхУрочные = Окр(Надурочние,0);
                    СумаНадурочних = СумаНадурочних+Окр(Надурочние,0);
                КонецЕсли;
            Иначе
                СверхУрочные = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"СверхУрочные")-СумаНадурочних;
                
                СумаНадурочних = СумаНадурочних+Окр(СверхУрочные,0);
            КонецЕсли;
            Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")-СумаВиходних-Окр(Виходние,0)>=0 Тогда
                Если ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"КолСтрМашина")=КолСтрМашина Тогда
                    Выходные = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")-СумаВиходних;
                Иначе
                    Выходные     = Окр(Виходние,0);
                    СумаВиходних = СумаВиходних+Окр(Виходние,0);
                КонецЕсли;
            Иначе
                Выходные     = ТЗсверхурочные.ПолучитьЗначение(ТЗсверхурочные.НомерСтроки,"РаботаУвиходнойОплата")-СумаВиходних;
                
                СумаВиходних = СумаВиходних+Окр(Выходные,0);
            КонецЕсли;
            Машина       = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Машина");
            Маршрут      = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Маршрут");
            Должность    = ТЗмашина.ПолучитьЗначение(ТЗмашина.НомерСтроки,"Должность");
        КонецЦикла;
        ТЗсверхурочные.выбратьстроку();
    КонецЦикла;
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #54319 · Ответов: 0 · Просмотров: 1481
 


Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 09.06.24, 0:13
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!