|
Табель сотрудников ЗУП 3.1 | ☑ | ||
---|---|---|---|---|
0
Staler1
12.03.18
✎
06:56
|
Подскажите как сделать заполнение в определенный столбец.
http://ibb.co/ehFwYH заполняется на данный момент так http://ibb.co/nsMyfx Код который заполняет; Процедура ВывестиДанныеПоСотруднику(ДокументРезультат, ОбластьДанныеОВремени, ОбластьШапкаТаблицы, ДанныеПоСотруднику, ТекущийЛист) ИмяПоляБуквенныйКод = ИмяПоляБуквенныйКод(); НастройкиПечатныхФорм = ЗарплатаКадрыПовтИсп.НастройкиПечатныхФорм(); КоличествоПараметров = ОбластьДанныеОВремени.Параметры.Количество(); Для ИндексПараметра = 0 По КоличествоПараметров - 1 Цикл ОбластьДанныеОВремени.Параметры.Установить(ИндексПараметра, Неопределено); КонецЦикла; ВидВремениВыходной = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.ВыходныеДни"); ВидВремениКомандировка = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.Командировка"); ОтработаноДнейЗаПервуюПоловинуМесяца = 0; ОтработаноЧасовЗаВторуюПоловинуМесяца = 0; ОтработаноДнейЗаВторуюПоловинуМесяца = 0; ОтработаноЧасовЗаПервуюПоловинуМесяца = 0; ОтработаноДнейЗаМесяц = 0; ОтработаноЧасовЗаМесяц = 0; СтруктураФИО = Новый Структура("Фамилия,Имя,Отчество"); СтруктураФИО.Фамилия = ДанныеПоСотруднику.Фамилия; СтруктураФИО.Имя = ДанныеПоСотруднику.Имя; СтруктураФИО.Отчество = ДанныеПоСотруднику.Отчество; Если НастройкиПечатныхФорм.ВыводитьПолныеФИОВСписочныхПечатныхФормах Тогда ФИО = СтруктураФИО.Фамилия + ?(ПустаяСтрока(СтруктураФИО.Имя), "", " " + СтруктураФИО.Имя + ?(ПустаяСтрока(СтруктураФИО.Отчество), "", " " + СтруктураФИО.Отчество)) Иначе ФИО = ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы(СтруктураФИО); КонецЕсли; ОбластьДанныеОВремени.Параметры.Сотрудник = ФИО + " |(" + ДанныеПоСотруднику.ДолжностьНаименование + ")"; ОбластьДанныеОВремени.Параметры.ТабельныйНомер = ДанныеПоСотруднику.СотрудникКод; ОбластьДанныеОВремени.Параметры.НомерПП = ДанныеПоСотруднику.СистемныеПоляНомерПоПорядкуВГруппировке; ОтклоненияПоСотруднику = Новый ТаблицаЗначений; ОтклоненияПоСотруднику.Колонки.Добавить("ВидВремени"); ОтклоненияПоСотруднику.Колонки.Добавить("БуквенныйКод"); ОтклоненияПоСотруднику.Колонки.Добавить("ЦыфровойКод"); ОтклоненияПоСотруднику.Колонки.Добавить("Часов"); ОтклоненияПоСотруднику.Колонки.Добавить("Дней"); Для Каждого ДанныеОВремениНаДату Из ДанныеПоСотруднику.Строки Цикл Если День(ДанныеОВремениНаДату.Дата) <= 15 Тогда ОтработаноДнейЗаПервуюПоловинуМесяца = ОтработаноДнейЗаПервуюПоловинуМесяца + ДанныеОВремениНаДату.РабочиеДни; ОтработаноЧасовЗаПервуюПоловинуМесяца = ОтработаноЧасовЗаПервуюПоловинуМесяца + ДанныеОВремениНаДату.РабочиеЧасы; Иначе ОтработаноЧасовЗаВторуюПоловинуМесяца = ОтработаноЧасовЗаВторуюПоловинуМесяца + ДанныеОВремениНаДату.РабочиеЧасы; ОтработаноДнейЗаВторуюПоловинуМесяца = ОтработаноДнейЗаВторуюПоловинуМесяца + ДанныеОВремениНаДату.РабочиеДни; КонецЕсли; ОтработаноДнейЗаМесяц = ОтработаноДнейЗаМесяц + ДанныеОВремениНаДату.РабочиеДни; ОтработаноЧасовЗаМесяц = ОтработаноЧасовЗаМесяц + ДанныеОВремениНаДату.РабочиеЧасы; ПредставлениеВидовВремени = ""; ЧасыПоВидамВремениСтрока = ""; КоличествоЗаписейНаДату = 0; ЭтоКомандировка = Ложь; Для Каждого ДетальныеЗаписиЗаДень Из ДанныеОВремениНаДату.Строки Цикл Если Не ДетальныеЗаписиЗаДень.ВидУчетаВремениРабочееВремя И ДетальныеЗаписиЗаДень.ВидУчетаВремени <> ВидВремениВыходной И ДетальныеЗаписиЗаДень.ВидУчетаВремениОсновноеВремя <> Справочники.ВидыИспользованияРабочегоВремени.ПустаяСсылка() Тогда ОтклоненияПоВидуВремени = ОтклоненияПоСотруднику.Добавить(); ОтклоненияПоВидуВремени.ВидВремени = ДетальныеЗаписиЗаДень.ВидУчетаВремени; ОтклоненияПоВидуВремени.БуквенныйКод = ДетальныеЗаписиЗаДень[ИмяПоляБуквенныйКод]; ОтклоненияПоВидуВремени.ЦыфровойКод = ДетальныеЗаписиЗаДень[ИмяПоляБуквенныйКод]; ОтклоненияПоВидуВремени.Дней = 1; Если ДанныеОВремениНаДату.Строки.Количество() > 1 Тогда ОтклоненияПоВидуВремени.Часов = ДетальныеЗаписиЗаДень.Часы; Иначе ОтклоненияПоВидуВремени.Часов = ДанныеОВремениНаДату.Часы; КонецЕсли; КонецЕсли; ПредставлениеВидовВремени = ПредставлениеВидовВремени + "/"+ ДетальныеЗаписиЗаДень[ИмяПоляБуквенныйКод]; Если Не ДетальныеЗаписиЗаДень.ВидУчетаВремениЦелосменное Тогда ЧасыПоВидамВремениСтрока = ЧасыПоВидамВремениСтрока + "/" + Формат(ДетальныеЗаписиЗаДень.Часы, "ЧГ="); КонецЕсли; КоличествоЗаписейНаДату = КоличествоЗаписейНаДату + 1; Если ДетальныеЗаписиЗаДень.ОсновноеВремя = ВидВремениКомандировка Тогда ЭтоКомандировка = Истина; КонецЕсли; КонецЦикла; Если КоличествоЗаписейНаДату = 1 И ЭтоКомандировка Тогда ЧасыПоВидамВремениСтрока = ""; КонецЕсли; НомерДня = День(ДетальныеЗаписиЗаДень.Дата); ОбластьДанныеОВремени.Параметры.ДниЗаМесяц = ОтработаноДнейЗаМесяц; ОбластьДанныеОВремени.Параметры.ЧасыЗаМесяц = ОтработаноЧасовЗаМесяц; ОтклоненияПоСотруднику.Свернуть("ВидВремени,ЦыфровойКод, БуквенныйКод", "Дней, Часов"); СчетчикОтклонений =1; Для Каждого ОтклонениеПоВидуВремени Из ОтклоненияПоСотруднику Цикл Если СчетчикОтклонений >1 Тогда Прервать; КонецЕсли; ОбластьДанныеОВремени.Параметры["НеявкаКод" + СчетчикОтклонений] = ОтклонениеПоВидуВремени.БуквенныйКод; ОбластьДанныеОВремени.Параметры["НеявкаДниЧасы" + СчетчикОтклонений] = Формат(ОтклонениеПоВидуВремени.Дней, "ЧГ=") + ?(ОтклонениеПоВидуВремени.Часов > 0, "(" + Формат(ОтклонениеПоВидуВремени.Часов, "ЧГ=") + ")", ""); СчетчикОтклонений = СчетчикОтклонений + 1; КонецЦикла; ВывестиОбласть(ДокументРезультат, ТекущийЛист, ОбластьДанныеОВремени, ОбластьДанныеОВремени); КонецПроцедуры |
|||
1
Staler1
12.03.18
✎
06:59
|
Пробывал на каждую таблицу свой цикл Создавать, в результате получалось не так как надо, если сможете подскажите как мне сделать, чтобы если есть данные под определенную таблицу то заполнит ее иначе идет дальше.
|
|||
2
RomaH
naïve
12.03.18
✎
07:54
|
(0) оформи вопрос свой
у тебя не обозначена проблема - от слова "совсем" помни - правильно заданный вопрос содержит 80% ответа |
|||
3
SleepyHead
гуру
12.03.18
✎
08:31
|
(2) Первое слово в комментарии (1) говорит о том, что надо начинать с фундаментальных вещей.
|
|||
4
Staler1
12.03.18
✎
09:17
|
(2) я написал в (1) сообщении , что делал
|
|||
5
RomaH
naïve
12.03.18
✎
09:30
|
(4) "в результате получалось не так как надо" - ну зая...
|
|||
6
Масянька
12.03.18
✎
09:34
|
(0) ЕГЭ сдавал?
|
|||
7
Staler1
12.03.18
✎
09:54
|
(6) причем тут это?!
|
|||
8
Масянька
12.03.18
✎
09:59
|
(7) Ошибок (по русскому) много... Понятно, что ошибки есть практически всегда, но что-то в последнее время слишком много...
Только не надо утверждать, что это тут ни при чем. |
|||
9
Staler1
12.03.18
✎
10:02
|
(8) ошибки ошибками, лучше подскажите как задачу решить.. могу обработку загрузить..
|
|||
10
Масянька
12.03.18
✎
10:03
|
(9) См. (3).
|
|||
11
Масянька
12.03.18
✎
10:10
|
+ (10) У меня складывается ощущение, что систему нужно просто ломать и строить заново...
Уже так привыкли: берем готовое (доклад, сочинение, отчет и пр.), меняем пару абзацев, строк и сдаем... В результате - имеем фигню... Полную... |
|||
12
Staler1
12.03.18
✎
10:14
|
(11) я только начал изучать! совета спросить не у кого, как мне сделать с 0?! как вы все сами начинали изучать?!
|
|||
13
Staler1
12.03.18
✎
10:16
|
только критику можно услышать, а по делу единицы скажут только.
|
|||
14
Малыш Джон
12.03.18
✎
10:19
|
(12) у тебя вопрос-то в чем? "Как сделать, чтобы работало так, как я хочу?"
ты кидаешь кусок кода и говоришь - "разберитесь и скажите мне что неправильно". Как ты думаешь, что тебе в ответ скажут? Ну и ошибки, да. Тоже ведь говорят об уровне |
|||
15
Staler1
12.03.18
✎
10:37
|
(14) я прошу готовый код?!код написал для того, чтоб на кофейной гуще не гадать. прошу помощи чтоб направили в правильном русле искать ответ.
|
|||
16
Малыш Джон
12.03.18
✎
10:43
|
(15) ты ещё и читать не умеешь...
|
|||
17
Малыш Джон
12.03.18
✎
10:43
|
(15) у тебя вопрос-то в чем?
|
|||
18
Staler1
12.03.18
✎
10:47
|
(17) как сделать, чтобы заполнялась таблица в определенном порядке, в определенном столбце?!
|
|||
19
Малыш Джон
12.03.18
✎
10:49
|
(18) заполнять её в нужном столбце в нужном порядке, не?
и насколько я понимаю, речь идет о табличном документе, а не о таблице? |
|||
20
Малыш Джон
12.03.18
✎
10:51
|
+(19) и насколько понимаю, есть макет?
|
|||
21
Staler1
12.03.18
✎
10:55
|
(20) да имеется макет
http://ibb.co/n25N3S |
|||
22
Малыш Джон
12.03.18
✎
11:00
|
ну вот например:
Для Каждого ОтклонениеПоВидуВремени Из ОтклоненияПоСотруднику Цикл Если СчетчикОтклонений >1 Тогда Прервать; КонецЕсли; ОбластьДанныеОВремени.Параметры["НеявкаКод" + СчетчикОтклонений] = ОтклонениеПоВидуВремени.БуквенныйКод; ОбластьДанныеОВремени.Параметры["НеявкаДниЧасы" + СчетчикОтклонений] = Формат(ОтклонениеПоВидуВремени.Дней, "ЧГ=") + ?(ОтклонениеПоВидуВремени.Часов > 0, "(" + Формат(ОтклонениеПоВидуВремени.Часов, "ЧГ=") + ")", ""); СчетчикОтклонений = СчетчикОтклонений + 1; КонецЦикла; больше одной итерации не происходит |
|||
23
Staler1
12.03.18
✎
11:20
|
(22) я знаю что больше одной операции не происходит, я на каждый столбец создал свой цикл по аналогии.
она заполняет, только надо чтобы заполняла по буквенномуКоду. вот тут самое интересное и в этом у меня не понятки. |
|||
24
Малыш Джон
12.03.18
✎
11:41
|
(23) ну в общем, это просто для примера. что у тебя находится в буквенном коде - знаешь только ты, мне телепатию включать лень.
код - не очень хороший, мягко говоря. Видишь - сам запутался. Бери отладчик - и проверяй, почему у тебя работает не так, как задумывалось. |
|||
25
SleepyHead
гуру
14.03.18
✎
07:21
|
(13) Так ты начни с дела. Опиши задачу, которую решаешь, опиши требуемый результат, а не заставляй тут людей изображать из себя телепатов.
|
|||
26
Staler1
14.03.18
✎
08:08
|
(25) Задача состоит в том что имеем табель по неявкам, по скриншотам видно, что у табеля имеется таблица (ДО, ОД, ТО и т.д) она заполняется с помощью Цикла последовательно, мне нужно чтобы заполняло определенную колонку, я вот не знаю как это сделать.. Воборкой это реально реализовать? или как лучше?!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |