Выгрузка данных в MS Project через COM-соединение

Публикация № 87282

Разработка - Обмен данными 1С - Загрузка и выгрузка в Excel

Работа с Microsoft Project через COM-соединение

Навеяно постом.

Нехватка материала по работе с Project'ом через COM подтолкнула меня написать эту статью. Материал не претендует на полноту, но, надеюсь, поможет программистам в некоторых базовых моментах. Использовалась русская версия продукта, поэтому названия полей и таблиц приведены такими, как они были прописаны в VBA при записи макросов. Для другого языка, думаю, перевести проблем не составит.

Итак, создание COMОбъекта:

MSProject = Новый COMОбъект("MSProject.Application");

создание нового файла:

MSProject.FileNew();

получаем коллекцию задач:

Tasks = MSProject.ActiveProject.Tasks;

отключение сообщений об ошибках и диалоговых окон (вида "Такой файл уже существует"):

MSProject.DisplayAlerts = False;

указываем сколько часов в рабочем дне:

MSProject.ActiveProject.HoursPerDay = 8;

для добавления колонок на рабочую область, использую метод TableEditEx у Application:

ИмяТаблицы = "&Ввод";
ПозицияКолонки = 2;
ТипПоля = "Текст1";
MSProject.Application.TableEditEx(ИмяТаблицы,True,,,,, ТипПоля ,"Представление колонки",,,,,,,  ПозицияКолонки ,,,,,);

Фактически в таблице хранится фиксированное количество столбцов и мы лишь можем управлять видимостью их и изменением свойств. Поэтому мы можем в любой столбец прописать свои значения, даже если его не видно на листе. Чтобы отобразить данные, нужно добавить колонку с тем типом данных, который мы указали. Второй параметр должен быть True. Список имен таблиц можно увидеть выполнив макрос с одним единственным словом Tables (может есть и "нормальный" вызов этого списка, но я этими поисками не занимался). После этого на форме появится список всех доступных таблиц проекта.

После добавления колонок нужно обновить таблицу:

MSProject.Application.TableApply(ИмяТаблицы);

Добавим задачу в проект:

NewTask = Tasks.Add();
мСоответствиеЗадач.Вставить(Задача1С, NewTask);

Переменная  мСоответствиеЗадач  это соответствие, для последующего добавления предшественников, если они будут.

Изменение уровня задачи в иерархии задач (действия аналогичны нажатию стрелок "Понизить уровень задачи" и "Повысить уровень задачи" на панели проекта:

Task.OutlineIndent(); // понижение уровня
Task.OutlineOutdent(); // повышение уровня

Редактирование полей, которые не ReadOnly можно напрямую:

NewTask.Name = "Название";
NewTask.Milestone = True;  // Веха

Обратите внимание, что поля Start (Начало задачи) и Finish (Окончание задачи) не должны быть заполнены пустой датой:

Если ЗначениеЗаполнено(ДатаНачалаПлан) Тогда
   
NewTask.Start = ДатаНачалаПлан + Hour * 9;
КонецЕсли;
Если
ЗначениеЗаполнено(ДатаОкончанияПлан) Тогда
   
NewTask.Finish = ДатаОкончанияПлан + Hour * 18;
КонецЕсли;

Остальные поля можно редактировать через метод SetField, который умеет работать через константы имен полей и их ID (можно посмотреть в справке все ID всех доступных полей). Пример через ID:

NewTask.SetField(188743731, КодСДР); // Текст1

Добавим ресурсы через константу по имени поля. В квадратных скобках указывается Загрузка ресурса:

FieldRes = Tasks.Application.FieldNameToFieldConstant("Названия ресурсов");
NewTask.SetField(FieldRes, Исполнитель.Наименование + "[80%]");

Если ресурсов больше, чем один, то они указываются в одну строку через точку с запятой.

Добавим предшественников с помощью метода  LinkPredecessors. Здесь-то нам и понадобится соответствие задач 1С и задач Project'а:

LinkTask = мСоответствиеЗадач[ЗадачаПредшественник];
Task.LinkPredecessors(LinkTask);

Можно изменить шрифт:

MSProject.Application.SelectSheet();
MSProject.Application.Font32Ex("Arial", 8 , True);

Сохраним и выйдем:

MSProject.FileSaveAs(ПутьКФайлу);
MSProject.Application.Quit();

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. German 872 14.07.11 09:26 Сейчас в теме
2. Irwin 334 14.07.11 09:47 Сейчас в теме
(1) У объекта Task есть два метода LinkPredecessors() и LinkSuccessors(). Первый добавляет предшественника, второй наследника.
hem1cuda; +1 Ответить
3. artmicro 06.10.11 15:09 Сейчас в теме
Спасибо. Очень помогло. В процессе бурной автоматизации отдела, появилась необходимость работы с Project, так что Ваша статья пришлась очень даже кстати. :)
hem1cuda; +1 Ответить
4. Romanius 25.11.11 14:56 Сейчас в теме
Вдруг кому пригодится. У метода LinkPredecessors() можно использовать 3 параметра, собственно ссылка на предшественника, тип привязки, и запаздывание.

по 1-му все понятно
второй параметр - число от 1 до 4 (на текущий момент, 2010-й Project).
3-й параметр чуть хитрее, тип значение Variant - не заморачиваясь с английским выяснилось текстовое представление числа в данном конкретном методе.

где-то так
ОсновнаяЗадача.LinkPredecessors(ЗадачаПредок,1,Строка(ПроцессСмещение));


ЗЫ: И еще Project считает по рабочим дням, это следует учитывать.
5. RukORK 07.02.12 10:08 Сейчас в теме
Очень полезная статья, помогла в настройке выгрузки проектов в project
6. RukORK 07.02.12 10:09 Сейчас в теме
7. Konsult 07.02.12 10:11 Сейчас в теме
Очень понятно и информативно расписано, автор молодец.
hem1cuda; +1 Ответить
8. Daniayr 18.03.16 12:16 Сейчас в теме
у кого нить есть полный пример выгрузки?
9. hem1cuda 29.03.19 22:18 Сейчас в теме
10. bimy22 01.04.19 14:08 Сейчас в теме
Довольно подробно расписано, спасибо за публикацию.
Оставьте свое сообщение

См. также

Удаление из файла эксель ненужных страниц средствами 1С без COM и через COM

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Как средствами 1С из файла эксель удалить ненужные листы без COM и с ним. Я разрабатывал на платформе 1С:Предприятие 8.3 (8.3.14.1694)

28.01.2020    930    pavel_pss    12       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Получение данных из Сигур

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Внешние источники данных

Получение данных из СКУД Сигур (без танцов с бубном)

25.12.2019    1342    skaoxy    5       

Обертка функций Excel на русском. Ускорение процесса разработки.

Статья Программист Нет файла v8 Windows Бесплатно (free) Загрузка и выгрузка в Excel Универсальные функции

Устали переключаться с русского на английский и обратно при работе с таблицами Excel из 1С? Сборка наиболее необходимых функций и методов работы с Excel, обернутых в функции 1С на русском языке.

24.10.2019    4211    DmitryKotov    6       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Интеграция решений на 1С и сервиса обмена данными RabbitMQ через Web REST API

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Внешние источники данных

Отправка "Hello world" из 1С на сервер RabbitMQ и обратно при помощи web REST API. Проще уже некуда! Совместимо с Linux и Windows! Реализация протестирована на 1С 8.3.14.1854 (x64).

21.10.2019    6772    Eret1k    12       

Выгрузка из 1С номенклатуры со штрихкодами без программирования

Статья Программист Пользователь Стажер Нет файла v8 УТ11 Россия Бесплатно (free) Загрузка и выгрузка в Excel Внешние источники данных

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    5053    user1114182    4       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Выгрузка данных в таблицу MS SQL SERVER

Статья Программист Нет файла v8 MS SQL Бесплатно (free) Внешние источники данных

Процедура по выгрузке данных из 1C (таблица значений) в таблицу MS SQL SERVER через COM.

02.07.2019    4054    EvgenSav    17       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

1С и компьютерное зрение: новый подход к контролю за ассортиментом магазина

Статья Бизнес-аналитик Нет файла v8 1С:Франчайзи, автоматизация бизнеса УУ Розничная торговля Бесплатно (free) Внешние источники данных

Машинное зрение в магазинах и 1С. Как поднять эффективность торгового предприятия (магазин. кафе, шоурум и т.д.) с совершенно неожиданной стороны? Как получить реальные демографические данные покупателей и, самое главное, как это использовать в повседневной работе магазина? Как можно расширить привычные ABC и XYZ анализ, добавив в них пласт данных о трафике и демографии покупателей? Что необходимо для 1С, чтобы использовать данные видеоанализа людского трафика?

20.06.2019    5895    osipov_cvizi    16       

Загрузка картинок в справочники (Универсальная загрузка из табличного документа)

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Обработка справочников Загрузка и выгрузка в Excel

Пример загрузки картинок в справочник Номенклатура (с помощью обработки универсальная загрузка данных из табличного документа). Проверялось на конфигурации УТ 11.4.7.

28.05.2019    4249    rasdag    2       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Интеграция решений на 1С и сервиса обмена данными RabbitMQ

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

"Hello world" из 1С на сервер RabbitMQ и обратно. Полностью открытый код 1С! Реализация протестирована на 1С 8.3.12.1714 (x64).

24.04.2019    12090    Eret1k    51       

Преобразование EXCEL в таблицу значений без COM и других извращений

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Получение таблицы значений из excel в 1С v8, без COM, внешних источников данных и т.д. EXCELВТаблицуЗначений() - За 10 строчек кода! Реализация протестирована на 1С 8.3.12.1714 (x64).

18.04.2019    18189    9    Eret1k    43       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

MS Access и 1С. Что, когда и зачем?

Статья Программист Бизнес-аналитик Нет файла v8 Бесплатно (free) Практика программирования Внешние источники данных Разработка

Об использовании MS Access в связке с 1С. Можно ли использовать продукты Office на сервере. Когда Access может быть полезен. Примеры работы и другое.

09.04.2019    20439    YPermitin    32       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

RabbitMQ + Конвертация Данных 3.0

Статья Системный администратор Программист Бизнес-аналитик Руководитель проекта Нет файла v8 КД Бесплатно (free) Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8

Предлагаем ознакомиться с хронологией проекта, проследить ход мыслей от снятия потребностей до реализации, и решить, удалось ли проектной команде найти оптимальное архитектурное решение под конкретный кейс заказчика путем совмещения двух известных, но до сих пор не пересекавшихся технологий, и получилось ли сложить плюсы и устранить минусы каждой из них.

21.03.2019    18267    barelpro    82       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов

Статья Системный администратор Программист Нет файла v8 УПП1 Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных

Что делать, если по каким-то причинам нет возможности разместить 1С и Крипто-Про на одном рабочем месте? Правильно - открывать конфигуратор и пилить. Благо, там не сложно. Непосредственно решение для УПП 1.3. Для ЗиК 2.5 и Комплексной автоматизации должно быть аналогично.

07.02.2019    4054    SatanClaws    4       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Копирование числовых ячеек из 1С в Excel

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel Администрирование данных 1С

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    15555    itriot11    21       

Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент)

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Пользователи часто просят сохранить им стопиццот отчетов в один файл Excel, чтобы отчеты были в одном файле. Ну или клиент хочет счет, накладную и счет-фактуру получить в одном документе. 1С умеет это делать без всяких там COM-объектов. Давайте разберемся, куда нажимать и что крутить.

14.01.2019    15759    starik-2005    25       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д)

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д). На примере загрузки в табличную часть документа Поступление товаров и услуг в УТ 11.4.

09.01.2019    9098    rasdag    14       

Работа с кассой Atol через веб-сервер ДТО-10

Статья Программист Нет файла v8 Россия Кассовые операции НДС Бесплатно (free) Внешние источники данных ККМ Фискальный регистратор

Поддержка многопользовательской печати на одном устройстве ККТ. Поддержка изменений в законодательстве (Переход на ФФД 1.05 и НДС 20%).

31.12.2018    23879    medangel    41       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

RabbitMQ, Python и Windows. Step By Step

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Внешние источники данных

Работа с шиной RabbitMQ, используя Python на Windows. Пошаговый быстрый старт.

13.12.2018    6592    w.r.    7       

Работа с Excel через COM

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Несколько примеров работы с excel (ms office 2010, в моем случае) через COM.

01.10.2018    7191    jaroslav.h    0       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

Выгрузка в Excel с использованием формата OpenXML, разбор файла sheet1.xml

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Судя по количеству просмотров темы https://infostart.ru/public/900022/ решил описать структуру файла Листа excel. На полноту не претендую, опишу то, что знаю.

21.09.2018    5492    user1045404    2       

Из 1С в IIKO: Передаем перемещения УТ в приходные накладные

Статья Программист Нет файла v8 УТ11 Рестораны, кафе и фаст-фуд УУ Оптовая торговля Бесплатно (free) Внешние источники данных

Рассмотрение вариантов передачи документа "Перемещение товаров" из Управление торговлей 11 в документ "Приходная накладная" IIKO.

12.09.2018    5889    oyti    7