Имя: Пароль:
1C
1С v8
Штатное Расписание как сделать ленивей?
0 magicSan
 
25.09.15
11:07
ТабличнаяЧасть - сотрудники и дни, запись идет в регистр сведений, период день

при каждой записи в лоб получается цикла 2: по дням и сотрудникам. И каждый раз надо читать НаборЗаписей - неудобно. Структуру может другую выбрать или есть метод покрасивее
1 ДенисЧ
 
25.09.15
11:08
Может, структуру другую... А может, и профессию...
2 Лефмихалыч
 
25.09.15
11:11
(0) не записывай в лоб. Циклов может быть, сколько угодно, а запись должна быть только одна. Формируй один общий набор любым количеством циклов и записывай его один раз
3 mistеr
 
25.09.15
11:13
Можно еще задачу объяснить четко и подробно. Говорят, помогает.

P.S. Какие нафиг дни в ШР?
4 snegovik
 
25.09.15
11:14
(0) В ШР нет сотрудников, только должности и подразделения.
5 snegovik
 
25.09.15
11:14
(3) ШР может меняться хоть каждый день, для этого и используется периодичность в днях.
6 magicSan
 
25.09.15
11:15
график работы
7 magicSan
 
25.09.15
11:16
нет всё таки штатное расписание с "раскрытым" графиком работы
8 magicSan
 
25.09.15
11:18
(1) тебе с твоими предложениями точно професию сменить

(2) нук там затирать надо будет так и так по дням

(3) таблица - график работы в разрезе сотрудников
задача - упростить перезапись регистра сведений.
9 mistеr
 
25.09.15
11:39
(8) Ты знаешь, понятнее не стало. Вспомни, как в школьных учебниках постановка задачи описывалась.

Либо да, о профессии задуматься.
10 magicSan
 
25.09.15
11:47
(9) человеку со стороны трудно вникнуть оно понятно - не утруждай себя.
11 magicSan
 
25.09.15
12:04
запилил

рег=РегистрыСведений.ШтатноеРасписание.СоздатьНаборЗаписей();
        

    
    для день=1 по 31 цикл
        рег.Отбор.период.установить(период+(день-1)*86400);
        рег.Прочитать();
        
        тз=ШтатноеРасписание.Скопировать(,"Сотрудник,Колонка"+день);
        рег.Загрузить(тз);
        рег.Записать();
        
    конеццикла;

летает, может кому надо будет
12 gigi789
 
25.09.15
12:10
(11) у тебя 31 запись а сможешь сделать чтоб была 1??
13 Goggy
 
25.09.15
12:14
(11) Что-то ты себя дерзковато ставишь для такого Г-кодерства...
14 kumena
 
25.09.15
12:15
(11)

>> человеку со стороны трудно вникнуть оно понятно - не утруждай себя.

вообще да, трудно вникнуть, когда штатка не может каждый день меняться.
15 magicSan
 
25.09.15
12:23
(13) мямлишь много а по коду лучше предложить не можешь - гумнокодеры они такие, тока критиковать могут.

(14)Я контекст описал - сколько раз она меняется в рамках задачи не указано, ну да же для записи одного раза 2 цикла 3 сек - ощутимо.
16 Goggy
 
25.09.15
12:26
(15) Тебе в 12 всё уже разжевали как школьнику.
Пожалуй тебе стоит рассмотреть поближе вопрос на счёт проффессии.
17 magicSan
 
25.09.15
12:28
(16) ещ раз для маленьких - дней между 31 и 28, а сотрудников 100-300 мне твои 1 ненужны, но для тебя как для человека не сведущего в теме и отписывающего в ней и это будет непонятно.
18 magicSan
 
25.09.15
12:30
(16) аааа. понял тебя. для этого сюда и писал может кто получше предложит
19 kosts
 
25.09.15
12:32
(18) Продолжать, всё у тебя правильно.
20 vhl
 
25.09.15
13:02
(8) И штатное расписание превращается в Табель учета рабочего времени!
21 magicSan
 
25.09.15
13:03
(20) В табеле пропуски и прочее тут без учета этого - "как планировалось"
22 vhl
 
25.09.15
13:08
(21) У тебя перемешались понятия "График работы", "Штатное расписание" и "Табель учета рабочего времени". Что именно ты пытаешься породить?
23 Ненавижу 1С
 
гуру
25.09.15
13:09
Не в каждом месяце может быть 31 день, вернее даже есть месяцы, которые могут иметь разное число дней от года к году, вот это все, что хотел я вам сказать.
24 magicSan
 
25.09.15
13:29
(22) ничего не перемешалось, какую таблицу принелси такую и делаю - в удобном виде загоняю в РС, выглядит как табель, но является штатным расписанием с аналитикой по дням. (23) в 17 написано это не приниципиально


Лучшеб кто сказал - можно ли всё разом закинуть в РС без циклов.
25 kosts
 
25.09.15
13:33
(24) Регистр сделай, что бы совпадал по структуре с таблице ШтатноеРасписание, тогда без цикла обойтись можно
26 vhl
 
25.09.15
13:35
(24) Конечно можно:
рег=РегистрыСведений.ШтатноеРасписание.СоздатьМенеджерЗаписей();
рег.НужнаяДата = Период;
рег.ШР = ЗначениеВСтрокуВнутр(ШтатноеРасписание);
рег.Записать();
27 kosts
 
25.09.15
13:40
Возможно так тогда
рег.ШР = ЗначениеВСтрокуВнутр(ШтатноеРасписание.Выгрузить());
28 magicSan
 
25.09.15
13:49
(25) Очень весело запросы будет делать к такому!

(26) слабо через СКД на месяц вывести из такого ту таблицу которая была в документе?