Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Запись данных в регистр сведений / 25 сообщений из 26, страница 1 из 2
13.10.2009, 10:29
    #36247198
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Здравствуйте!
Подскажите, пожалуйста, как в 1С 8.1 можно решить следующую задачу:
Есть в БД (Firebird) данные о сотрудниках и их ежедневные отметки о входе/выходе на предприятие. Необходимо синхронизировать 1С 8.1 и Firebird так, чтобы в 1С хранились данные о проходах для формирования графиков посещения сотрудников предприятия.
Сопоставление сотрудников будет по табельному номеру, который имеется и в 1С и в Firebird.
Думаю что через регистр сведений было бы оптимально, но как туда правильно записать данные, по мануалам про регистр сведений не все понятно, поэтому прошу подсказать, как правильно нужно организовать?
Обновление при синхронизации нужно по 2 таблицам/справочникам(регистрам): проходы и сотрудники.
...
Рейтинг: 0 / 0
13.10.2009, 10:37
    #36247216
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Проходы имеют вид: сотрудник, дата, время, тип прохода (вход/выход)
...
Рейтинг: 0 / 0
13.10.2009, 10:52
    #36247282
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Регистр сведений должен быть такой: Измерения - сотрудник (или табельный номер) и дата со временем. Ресурсы - тип прохода + можно добавить поле, сколько времени прошло с момента входа для более быстрого получения отчета.
...
Рейтинг: 0 / 0
13.10.2009, 10:54
    #36247290
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
+ можно вообще обойтись одним измерением - время проведенное на рабочем месте. Для типа записи Вход оно равно 0, для типа записи Выход > 0.
Тогда время проведенное на рабочем месте будет определяться тупо суммированием всех записей.
...
Рейтинг: 0 / 0
13.10.2009, 10:58
    #36247311
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Просят еще чтобы было видно когда человек зашел и когда вышел.
Вопрос: как программно записывать в регистр сведений результат запроса к Firebird?
Думаю через регламентное задание попробывать, но надо будет где-то хранить ID последней записаной в регистр записи. Что для такого хранения наиболее подходит?
...
Рейтинг: 0 / 0
13.10.2009, 12:37
    #36247700
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Кто зашел и кто вышел - кто мешает сделать? Записи то в регистре и для входа и для выхода будут. А с ID - если значение одно, то в принципе, можно в константу, но это, мне кажется, не совсем красиво. Можно добавить ресурс в регистр сведений - ID записи. Тогда всегда можно получить и стопроцентную связь между 1С и базой и те записи, которые не загружены.
А записывать так же, как и в любой другой регистр сведений - через набор записей.
...
Рейтинг: 0 / 0
13.10.2009, 12:41
    #36247715
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
через набор обычно пишут в регистры подчиненные регистратору. для остальных есть менеджер записи
...
Рейтинг: 0 / 0
13.10.2009, 12:44
    #36247729
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Угу, согласен. Через менеджер будет удобней.
Возможно, через набор записей будет быстрее при записи большого количества, но это нужно проверять. И не забывать при записи набора записей ставить флаг на добавление записей, а не на перезапись.
...
Рейтинг: 0 / 0
13.10.2009, 14:43
    #36248084
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
На примере можно показать как записать корректно?
Записей будет довольно много, около 7-8 тысяч в день.
Читал, что есть еще и ключи записей, это с чем едят?
...
Рейтинг: 0 / 0
13.10.2009, 15:29
    #36248259
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Лучше всего почитать ЖКК или help. Рассказать про все тонкости регистра сведений вряд ли получиться.
Для загрузки большого количества записей ИМХО лучше использовать набор записей. Соответственно, делается это так:
НаборЗаписей = РегистрыСведений.zСписаниеЗатратПоИзданиям.СоздатьНаборЗаписей();
Зап = НаборЗаписей.Добавить();
Зап.Сотрудник = Сотр1;
Зап2 = НаборЗаписей.Добавить();
Зап2.Сотрудник = Сотр2;
НаборЗаписей.Записать(Ложь);
При использовании менеджера записи нужно будет записывать отдельно каждую запись, при наборе записей - запись происходит один раз.
...
Рейтинг: 0 / 0
14.10.2009, 07:24
    #36249299
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Спасибо, попробую сделать как вы порекомендовали.
...
Рейтинг: 0 / 0
15.10.2009, 07:14
    #36252000
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
В регистре сведений, что должно быть уникальным в пределах дня?
Ведь на некоторых сотрудников в придется по входу и выходу за 1 день.
Что должно быть в измерениях? плюс т.к. турникета 3 штуки, некоторые одновременно заходят и выходят.
...
Рейтинг: 0 / 0
15.10.2009, 10:13
    #36252266
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Ресурсы: Измерения - сотрудник (или табельный номер) + ДатаРегистрации (дата со временем)
Соответственно, уникальным в пределах дня будет сотрудник и дата его прохода.
В ресурсы я бы добавил турникет.
А вообще, структура регистра сведений подбирается исходя из задачи, то бишь какие потом отчеты нужно будет получать.
...
Рейтинг: 0 / 0
15.10.2009, 12:35
    #36252820
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Хотелось бы состоавлять график посещения сотрудником предприятия.
Еще вопрос по типу Дата.
Как в 1С из даты со временем ДДММГГ ЧЧММСС выдернуть отдельно дату и отдельно время?
...
Рейтинг: 0 / 0
15.10.2009, 12:52
    #36252884
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Выдернуть дату и время можно почитав синтакс-помощник - раздел функций для работы с датами. Там полно функций.
Отдельно дату получить можно через НачалоДня(Дата), ну а со временем сложнее, это зависит от того, что потом с этим нужно делать
...
Рейтинг: 0 / 0
15.10.2009, 13:03
    #36252914
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
В FireBird дата и время прохода хранятся отдельно. поэтому я и в регистре их хочу отдельно записать, но когда записываю в регистр время имеет формат датавремя а не просто время, тоже самое и с датой, сюда еще время на начало дня записывается автоматически, хотя в свойствах для данных ресурсов указывал что должно быть отдельно дата, отдельно время.
...
Рейтинг: 0 / 0
15.10.2009, 13:56
    #36253149
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Если тип дата без времени - то и храниться дата без времени. Но в 1С нет типа дата без времени - поэтому всегда в переменной типа дата присутствует время, но оно нулевое.
А хранить отдельно дату и отдельно время смысла нет никакого, потом отчеты будет делать сложнее.
...
Рейтинг: 0 / 0
15.10.2009, 14:07
    #36253193
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
как тогда сложить дату и время из FireBird, чтобы корректно записать?
...
Рейтинг: 0 / 0
15.10.2009, 14:25
    #36253254
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
К дате добавляем количество секунд во времени
...
Рейтинг: 0 / 0
15.10.2009, 15:03
    #36253384
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
ДатаПрохода = Строка(День(Дата(НаборЗаписей.Fields(1).Value)))+"."+Строка(Месяц(Дата(НаборЗаписей.Fields(1).Value)))+"."+Строка(Год(Дата(НаборЗаписей.Fields(1).Value)))+" "+Строка(Час(Дата(НаборЗаписей.Fields(2).Value)))+":"+Строка(Минута(Дата(НаборЗаписей.Fields(2).Value)))+":"+Строка(Секунда(Дата(НаборЗаписей.Fields(2).Value)));

Вот так? Только эта зараза год принимает 2 009
...
Рейтинг: 0 / 0
15.10.2009, 15:52
    #36253535
semyons
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Лучше так:
ДатаПрохода = Дата(НаборЗаписей.Fields(1).Value)+Час(Дата(НаборЗаписей.Fields(2).Value))*3600++Минута(Дата(НаборЗаписей.Fields(2).Value))*60+Секунда(Дата(НаборЗаписей.Fields(2).Value))
...
Рейтинг: 0 / 0
16.10.2009, 10:34
    #36254893
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
ДатаПрохода = Дата(НаборЗаписей.Fields(1).Value)+Час(Дата(НаборЗаписей.Fields(2).Value))*3600++Минута(Дата(НаборЗаписей.Fields(2).Value))*60+Секунда(Дата(НаборЗаписей.Fields(2).Value));
Проход = РегистрыСведений.Проходы.СоздатьМенеджерЗаписи();
Проход.ФизЛицо = Сотрудник.Сотрудник;
Проход.ДатаПрохода = ДатаПрохода;
Если Строка(НаборЗаписей.Fields(3).Value) = "1" Тогда
Проход.ТипПрохода = Перечисления.ТипПрохода.Вход;
Иначе
Проход.ТипПрохода= Перечисления.ТипПрохода.Выход;
КонецЕсли;
Проход.Записать();

Сотрудника записывает, а ДатуПрохода и ТипПрохода игнорирует.
Что не так?
...
Рейтинг: 0 / 0
16.10.2009, 10:48
    #36254939
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
НаборЗаписей.Fields(1).Value)+Час(Дата(НаборЗаписей.Fields(2).Value))*3600++Минута(Дата(НаборЗаписей.Fields(2).Value))*60+Секунда(Дата(НаборЗаписей.Fields(2).Value)

что из себя представляет?
...
Рейтинг: 0 / 0
16.10.2009, 11:54
    #36255188
Protasoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
Дата прохода со временем на тот момент.
...
Рейтинг: 0 / 0
16.10.2009, 12:29
    #36255323
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных в регистр сведений
йопт... как они выглядит в отладчике?
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Запись данных в регистр сведений / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]