Конвертер Даты из числового формата Excel

17.04.13

Интеграция - Загрузка и выгрузка в Excel

Столкнувшись с проблемой загрузки в 1С из Excel Даты-Времени в числовом формате к удивлению не нашел нигде подобных формул. Может потому что они уж слишком банальны, а может потому что они "тайное знание посвященных". В общем, эта обработка пример конвертации Excel <=> 1C

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
КонвертерДат_Excel-1C.epf
.epf 6,59Kb
11
11 Скачать (1 SM) Купить за 1 850 руб.

Сам формат даты изучался эмпирически. То есть менял число и изучал что станет с датой-временем. Оказалась все банально до ужаса:

Число Excel = Количество дней от 1 января 1900 г.

Число 1С = Количество секунд от ... той же даты.

Дата 1С = )))

Соответственно формулы перевода выглядят следующим образом:

Процедура ЧислоExelПриИзменении(Элемент)
    // От Excel числа
    ЭлементыФормы.Дата1С.Значение = '190001010000'+(ЭлементыФормы.ЧислоExcel.Значение*86400);
    ЭлементыФормы.Число1C.Значение = Цел(ЭлементыФормы.ЧислоExcel.Значение*86400);
КонецПроцедуры

Процедура Дата1СПриИзменении(Элемент)
    // От Даты 1С
    ЭлементыФормы.Число1C.Значение = ЭлементыФормы.Дата1С.Значение-'19000101000000';
    ЭлементыФормы.ЧислоExcel.Значение = (ЭлементыФормы.Дата1С.Значение-'19000101000000')/86400;
КонецПроцедуры

Процедура Число1CПриИзменении(Элемент)
    // От Числа 1С
    ЭлементыФормы.Дата1С.Значение = '190001010000'+ЭлементыФормы.Число1C.Значение;
    ЭлементыФормы.ЧислоExcel.Значение = ЭлементыФормы.Число1C.Значение/86400;
КонецПроцедуры

Юзайте :)

В приложенном файле - этот же код, обредший интерфейс и ничего более.

P.S. Может эта информация и излишне примитивна и банальна для данного ресурса, но может и сохранить кому-то время потраченное на безрезультатное гугление и яндексирование...

См. также

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    234351    1062    898    

1003

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, МагнитЭкспресс (быв.Казань-Экспресс), Леруа Мерлен, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:КА 2, 1С:ERP Управление предприятием. Возможность подключить любые маркетплейсы. Анализ продаж ОZON. 30 дней БЕСПЛАТНОГО пользования!

3600 руб.

12.08.2021    35531    348    68    

155

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    107092    313    173    

326

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.10.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    156129    376    378    

513

Маркетплейсы Загрузка и выгрузка в Excel Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Загрузка данных отчета о реализации и продаже товаров из сервиса Яндекс.Маркета «Беру» в 1С из Отчетов Excel для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3; Управление нашей фирмой, редакция 3.0 и Розница, редакция 3.0 в документ «Отчет комиссионера о продажах».

4800 руб.

09.12.2020    25370    252    1    

114

SALE! 15%

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 9435 руб.

29.10.2014    216785    657    527    

456
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vld_trade 32 07.11.14 12:38 Сейчас в теме
Ничего другого на ресурсе не нашел (особо не искал).
Но решил вставить свои 5 коп. в эту тему в "назидание потомкам":
В Excel дата 01/01/1900 соответствует числу "1". Это "первый день".
Если мы сделаем в 1С "'19000101000000' - '190001010000'", то получим "0". Уже не соответствует заявленному коду, т.е. надо сразу учитывать арифметическую прогрессию и писать "+1" имея ввиду одни сутки в размере 86 400 секунд.
Для проверки напишите в 1С такой код:
Цел((ТекущаяДата() - '19000101000000')/86400)

ПолучИте результат. Вставьте его в Excel и преобразуйте формат в "Дата".

Далее учитываем, что 86400 секунд в целых сутках. Это значит, что если к
НачалоДня(ТекущаяДата())
прибавить 86400, то мы получим начало следующего дня.

Плюс ко всему надо учитывать известный баг про эпохи, когда "Excel ошибочно считает 1900 год високосным":
Проверьте в запросе:
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1900,2,28), ДЕНЬ, 1)

У меня в результате получается "01/03/1900" (8.2, 8.3).
В Excel та же операция показывает "29/02/1900".

Поэтому для записи в Excel даты в виде числа надо писать:
Цел((ТекущаяДата() - '19000101000000')/86400) + 2


Замечу, что обратное преобразование (из числа Excel в дату 1С) тоже надо производить с учетом этого поправочного коэффициента.
Прикрепленные файлы:
Yasasha; inesik; John_d; pavlo; freed; MishaHD; vova196; +7 Ответить
2. vova196 31 29.12.14 16:23 Сейчас в теме
(1) vld_trade,
Данные формулы соответствуют текущим рабочим задачам, т.е. вполне конкретной необходимости загрузить справочники и остатки. Где датой чаще всего выступает момент производства / покупки либо срок годности. Так что при всем уважении к полному раскрытию всех тонкостей конвертации даты, мой вариант считаю вполне работоспособным для решения именно практических задач. Так как предположить наличие клиента с продукцией выпущенной век назад - даже для моей богатой фантазии затруднительно.

Но в любом случае спасибо за интерес и "научный" подход к данному вопросу.
3. Mortiferus 363 18.03.15 15:54 Сейчас в теме
Тоже понадобилось сделать такую штуку, пользователи надавили. Внесу свою копеечку - надо прибавлять 2, чтобы правильно посчиталось. Типа такого:
Выбор Когда ДатаОплаты = ДатаВремя(1,1,1) Тогда 0 Иначе РазностьДат(ДатаВремя(1900, 1, 1), ДатаОплаты, "ДЕНЬ") Конец + 2

ЗЫ. Проверял на Excel 2007.
За подсказку и идею спасибо!
4. RainyAugust22 265 24.12.15 07:42 Сейчас в теме
Обработка ошибается на 2 дня: указываю ей - 35 382 конвектит в 15.11.1996 0:00:00, а в Excel'е это 13.11.1996
Решил делать:
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1899, 12, 30, 0, 0, 0), ДЕНЬ, 35382) КАК Поле1
Оставьте свое сообщение