ActiveDocument + Сервер 1C 8.3 = Разрыв соединения!

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

Разработка - Практика программирования

word шаблон activedocument 1с сервер

При формировании WORD шаблона &НаСервере происходит разрыв соединения с сервером 1С, всех пользователей отключает от сеансов и не дает зайти.

Всем привет! 

У нас было Имеем Windows Server Standart 2007 64x SP2, установленный на нем сервер 1С Предприятия 8.3 и установленный MS Office 2010.

Печатаем УТВЕРЖДЕННЫЕ шаблоны (много шаблонов) WORD из ЗУП 3.1 . Все по классике, внешняя печатная форма + макет, содержащий в себе ActiveDocument. Получаем, заполняем на сервере и передаем на клиент в виде двоичных данных, все работает  стабильно и все довольны, но в один прекрасный момент мы получаем сообщение: разрыв соединения с сервером 1С. И все. Зайти в программу больше не получится, пока не перезапустите службу Агент сервера 1С 8.3.

Честно говоря, с первого подобного сообщения отследить, чем был вызван разрыв, не удалось.

Но случаи участились.

Дальше опытным путем выяснилось, что при сохранении заполненного шаблона на сервере в файл вызывается экземпляр объекта COM (x32), он успешно записывает файл и уходит в забвение, причем не каждый раз, после чего сервер "отключается от клиентов". 

В чем же проблема?  Объяснение здесь. "Камень номер один " цитата :

Причина в том, что код

MSWord = Макет.Получить();

Всегда вызывает экземпляр объекта COM (x32) независимо от того какой разрядности Office установлен.

Автор предлагает заранее создавать пустой файл  COM (x64), потом его открывать и в него копировать заполненный, но не сохраненный шаблон из объекта COM (x32) . В общем, данный метод у меня не взлетел, так как документ всегда возвращался пустым, т.е. даже не шаблон. Проблема, думаю, во взаимодействии  объектов 32х/64х.

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

После сохранения файла (SaveAS) при попытке завершить экземпляр COM (x32) для перевода в двоичные данные сервер также падал.

После всех каруселей было найдено решение:


   

&НаСервере

Договор = ПолучитьМакет("Макет");
ВременныйФайл = ПолучитьИмяВременногоФайла(".doc");

//Было:
ОбъектWord = Договор.Получить(); // Здесь вся беда.
ДокументWord = ОбъектWord.Application.Documents(1);
ДокументWord.Activate();
//Заполняем
ДокументWord.SaveAs(ВременныйФайл,0);
ДокументWord.Close(); // Вылетает сервер.
ОбъектWord.Quit(0); // Вылетает сервер.

//*******************************************************

//Стало:

Договор.Записать(ВременныйФайл); //Это решает проблему полностью. 32х разрядное приложение не вызывается.        
Word = Новый COMОбъект("Word.Application");
Word.Displayalerts = 0;
ДокументWord = Word.Application.Documents.Open(ВременныйФайл); // Можно попробовать через ПолучитьCOMОбъект().
//Заполняем
ДокументWord.SaveAs(ВременныйФайл,0);
ДокументWord.Close();
Word.Quit(0);	



	
ФайлДД= Новый ДвоичныеДанные(ВременныйФайл);
АдресМакета = ПоместитьВоВременноеХранилище(ФайлДД);
УдалитьФайлы(ВременныйФайл);
Возврат АдресМакета; 


Спасибо всем за внимание. Нагуглить симптомы не удалось. Поэтому надеюсь, что кому-нибудь данная статья сэкономит время.

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

Лучшие комментарии
39. kiruha 382 03.07.18 16:19 Сейчас в теме
(18) Да это понятно.
Но
1) У клиента может не оказаться Word
2) У клиента может не оказаться лицензии Office
3) У клиента может оказаться не та версия Office
4) У клиента могут оказаться другие настройки Word и документ формируется по другому
5) У клиента просто непонятно что на компе творится и формирование документа Word корректно не происходит

6) Дефит + головняк у 1С ника из за этого
zeegin; kare; +2 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. sergathome 03.07.18 10:38 Сейчас в теме
Дёргать комом на сервере десктопные программы за гранью добра и зла, имхо.
DrAku1a; zeegin; ivanov660; SlavaKron; +4 Ответить
3. kiruha 382 03.07.18 11:36 Сейчас в теме
(1)
А как нужно вызывать Word или Excel на сервере &
4. sergathome 03.07.18 11:38 Сейчас в теме
5. kiruha 382 03.07.18 11:52 Сейчас в теме
(4)
Странно.
А вот в SQL Server есть штатные способы взаимодействия. Тот же OPENROWSET/
Да и во "вражеских" ERP штатно работают.

Может проблема не в сервере ?
6. sergathome 03.07.18 12:14 Сейчас в теме
(5) Проблема в том, что, запуская десктопную программу в контексте сервера, вы разрушаете контекст сервера с вероятностью отнюдь ненулевой (и производитель об этом прямо предупреждает https://support.microsoft.com/ru-ru/help/257757/considerations-for-server-side-automation-of-office). Нет, можно, конечно пить и из лужи, но вот стоит ли ?
10. kare 21 03.07.18 12:56 Сейчас в теме
(3) Сами объекты можно создавать на клиенте предварительно получив на сервере данные для заполнения. Опять же если только это у Вас динамический шаблон без ActiveDocument.
18. AlX0id 03.07.18 14:20 Сейчас в теме
(3) Ком не нужен.
1. Переименовываете в .zip
2. Распаковываете во временную папочку обычным архиватором.
3. Заменяете в нужных файликах требуемые параметры.
4. Запаковываете обратно.
5. Переименовываете в .docx
6. Профит.
kare; sergathome; +2 Ответить
20. kare 21 03.07.18 14:37 Сейчас в теме
(18) изящно, изначально docx должен быть?
32. AlX0id 03.07.18 15:39 Сейчас в теме
(20)
Да, xlsx и docx по сути упакованные xml-ки. А вот doc и xls - нет.
35. kare 21 03.07.18 15:52 Сейчас в теме
(32)ну для этого надо было тогда все шаблоны сохранить из пф потом пересохранить в docx и загрузить обратно в двоичные данные) как новое решение отлично подойдет.
52. zeegin 45 03.07.18 23:38 Сейчас в теме
(20) А вы не смотрели как это сделано в БСП 3.0.1?

> Существенно ускорено и повышена стабильность формирования печатных форм в формате офисных документов. Команды печати в этом формате теперь доступны во всех видах клиентов в операционных системах семейства Linux, Mac OS, а также в веб-клиенте.

http://downloads.v8.1c.ru/content//SSL/3_0_1_189/change.htm

Теперь собственно используется Office Open XML который разбирается и заполняется на сервере как zip архив.
39. kiruha 382 03.07.18 16:19 Сейчас в теме
(18) Да это понятно.
Но
1) У клиента может не оказаться Word
2) У клиента может не оказаться лицензии Office
3) У клиента может оказаться не та версия Office
4) У клиента могут оказаться другие настройки Word и документ формируется по другому
5) У клиента просто непонятно что на компе творится и формирование документа Word корректно не происходит

6) Дефит + головняк у 1С ника из за этого
zeegin; kare; +2 Ответить
41. kare 21 03.07.18 16:36 Сейчас в теме
(39) я побоялся это описывать @sergathome . Конечно на клиенте в половины случаев все разное.
50. AlX0id 03.07.18 17:04 Сейчас в теме
(39)
А нахрена вообще тогда ставили задачу по формированию документа в ворде? )
Я не говорю, что документы ворда суперские и замечательные. Но если поставили такую задачу - можно решить так. И да - это, конечно же, не универсальное решение.
51. kare 21 03.07.18 17:09 Сейчас в теме
(50) ))) Ворд жил жив и будет жив) актуш)
9. kare 21 03.07.18 12:54 Сейчас в теме
(1) Подскажите тогда каким образом получить такой макет на клиенте? макет держать в двоичных данных и передавать через временное хранилище? тогда уходит редактирование шаблона " на лету" через ActiveDocument что в данном решении не подходило.
16. sergathome 03.07.18 13:52 Сейчас в теме
2. fr13 03.07.18 11:23 Сейчас в теме
А что мешает использовать таблчиный документ как макет, заполнить, записать в поток, из потока в двоичный данные и дальше на клиента?
11. kare 21 03.07.18 13:02 Сейчас в теме
(2) Имеется ввиду вообще без WORD ? или из макета брать данные для заполнения шаблона на клиенте? тогда вопрос как передать макет из обработки с типом ActivDocument на клиент?
12. fr13 03.07.18 13:13 Сейчас в теме
(11) Сделать макет с типом Табличный документ. На сервере его заполнить. Дальше у ТД есть метод Записать. Записать можно в файл, а можно сразу в потоквпамяти. Так вот запись в поток и указать тип сохранения. Дальше у потока есть метод ЗакрытьИПолучитьДвоичныеДанные. Дальше ДД в хранилище и адрес этого хранилища передать на клиент. Никакой word не нужен. Единственное что, так это версия платформы 8.3.9+, но так как у Вас ЗУП 3.1, то скорей всего это ограничение не для Вас
13. kare 21 03.07.18 13:21 Сейчас в теме
(12) )) это здорово конечно, но а как же "Эта форма утверждена и она должна выглядеть именно так вплоть до форматирования" ?
14. fr13 03.07.18 13:25 Сейчас в теме
(13) Речь была не про утвержденную форму. Это уже отдельная история. Если сильно захотеть, то можно сделать. В конце концов *docx можно распаковать и через xpath менять что угодно. Опять же, тема отдельного разговора.
15. kare 21 03.07.18 13:29 Сейчас в теме
(14) согласен с docx, но это совсем другая история )))
30. kembrik 3 03.07.18 15:30 Сейчас в теме
(13) Для этого надо использовать LaTeX

Надоели мне постоянные танцы вокруг Офиса, делаю сейчас маленькую подсистемку, собирающую формы сразу в PDF
37. kare 21 03.07.18 16:05 Сейчас в теме
(30) Ждем публикацию, интересно будет взглянуть.
7. SlavaKron 03.07.18 12:23 Сейчас в теме
Мой комментарий напрямую не относится к теме, но лучше писать Word.Quit(0).
Например следующий код не закрывает процесс Word:
Word = Новый COMОбъект("Word.Application");
Word.Documents.Add();
Word.Selection.TypeText("Привет!");
Word.Quit();
8. kare 21 03.07.18 12:50 Сейчас в теме
(7)Пробовал с "0", результат был тот же. Хотя конечно же лучше делать как Вы указали.
17. sergathome 03.07.18 13:54 Сейчас в теме
(8) делать лучше так, как чел из 14 года советует ;))
https://infostart.ru/public/270277/
у него там, правда, тоже не без ошибок, но, думаю, разберётесь
19. kare 21 03.07.18 14:35 Сейчас в теме
(17)
Каталог = ПараметрыСеанса.ТекущийПользователь.РабочийКаталог;
	Каталог = ?(Прав(Каталог,1) = "\", Каталог, Каталог+"\");
Макет = Документы.ДоговорыКонтрагентов.ПолучитьМакет("ActiveDocument");
Макет.Записать(ПолноеИмяФайла);


здесь разве не нужен доступ к рабочему каталогу клиента из сервера? его может и не быть?
21. sergathome 03.07.18 14:43 Сейчас в теме
(19)
у него там, правда, тоже не без ошибок, но,
не разобрались, ага. Понятненько.
Короче, схема такая:
1. Через ВременноеХранилище передаём макет на клиент.
2. На клиенте получаем из ВХ и пишем в файл.
3. Там же, на клиенте, открываем файл как угодно.

Синхрофазотрон ?
22. kare 21 03.07.18 14:46 Сейчас в теме
(21) это понятно)) изначально макет есть что?
(9) ранее писал:
макет держать в двоичных данных и передавать через временное хранилище? тогда уходит редактирование шаблона " на лету" через ActiveDocument что в данном решении не подходило.
23. sergathome 03.07.18 14:49 Сейчас в теме
(22) Да что ж вы к этому несчастному АктивДокументу привязались. Двоичные данные он и пох. Укажете при записи файла расширение ему .дос и будет он вордом открываться как миленький. Есстно нужно правильный док указать - тот же, какой при помещении в макет был.
24. kare 21 03.07.18 14:51 Сейчас в теме
(23) если на сервере то в данном случае вызовется объект Word 32x что приведет к описанным в топе проблемам) в том вся соль что макет нужен для редактирования "на лету" если бы все было в двоичных данных топика бы здесь не появилось) Макет(AD) в том виде в котором он используется можно записать только на сервере, конечно без zip и тд и тп. Вариантов реализаций данного функционала масса. Но здесь конкретный случай. Переписывать все ПФ на двоичные данные и заполнение на клиенте это уже совсем другой выход.
25. sergathome 03.07.18 14:58 Сейчас в теме
(24) Вызовется тот, который вы ему скажете. Вы правильно написали всё про 32-64, только на клиенте половины проблем не будет ;)
26. kare 21 03.07.18 15:02 Сейчас в теме
(25) если двоичные данные .записать(**.doc) как он и был помещен туда на выходе мы получим 32х, про клиент - согласен %)
27. sergathome 03.07.18 15:05 Сейчас в теме
(26) да что же вы ересь-то такую несусветную пишете :) Файл - он просто вордовский файл, он не бывает 32 или 64 и откроется он тем вордом, который у вас на клиенте стоит.
28. kare 21 03.07.18 15:08 Сейчас в теме
(27)почему же? я про сервер говорю. ActiveDocument вызывает неявно экземпляр COM (x32) и поэтому все дальнейшие манипуляции нужно делать учитывая это особенность.
29. sergathome 03.07.18 15:29 Сейчас в теме
(28)
//На клиенте получаем макет и заполняем его предварительно полученными данными
ДвоичныеДанныеМакета = ПолучитьИзВременногоХранилища(ПолучитьМакетСКлиента("ПисьмоНаОплатуWord"));
            ИмяВрем = ПолучитьИмяВременногоФайла(".docx");
            ДвоичныеДанныеМакета.Записать(ИмяВрем);
            Попытка
                Документ = ПолучитьCOMОбъект(ИмяВрем); 
                Для Каждого Параметр из СтруктураПараметров.Значение Цикл
                    // пример:
                    Selection = Документ.Content;
                    Selection.Find.Execute("["+Параметр.Ключ+"]",Ложь,Истина,Ложь,,,Истина,,Ложь,Параметр.Значение,2);
                КонецЦикла;
                Документ.Application.Visible = Истина;
                Документ.Application.WindowState = 2;
                Документ.Application.WindowState = 1;
                Документ.Activate();
            Исключение
.....

&НаСервереБезКонтекста
Функция ПолучитьМакетСКлиента(Имя)
    Возврат ПоместитьВоВременноеХранилище(Документы.ПисьмоНаОплату.ПолучитьМакет("ПисьмоНаОплатуWordДвоичныеДанные"));
КонецФункции
Показать


Какие тут особенности ? ПолучитьСОМОбъект, который есть
Функция  ПолучитьСОМОбъект(ИмяФайла)
Word = Новый COMОбъект("Word.Application");
Word.Displayalerts = 0;
ДокументWord = Word.Application.Documents.Open(ИмяФайла);
Возврат ДокументWord;
КонецФункции
?

И, главное, даже если оно рухнет, по неважно даже каким причинам, то сервер не завалится.
31. kare 21 03.07.18 15:37 Сейчас в теме
(29) здесь двоичные данные записанные НА КЛИЕНТЕ в DOCX, капитан. Зачем мне то что я говорил (9) ?
макет держать в двоичных данных и передавать через временное хранилище? тогда уходит редактирование шаблона " на лету" через ActiveDocument что в данном решении не подходило.

Может сделаете тоже самое только на сервере и с doc?без двоичных данных? в чем холивар ?
34. sergathome 03.07.18 15:46 Сейчас в теме
(31) Здесь ваш АктивДокумент, который есть двоичные данные вордового файла, по-факту. Что же вы никак это не вкурите-то///
АктивДокумент = ДвоичныеДанные("ИмяФайла.doc")
36. kare 21 03.07.18 16:04 Сейчас в теме
(34) Мне не понятно к чему Вы пишите про двоичные данные и docx если в статье идет про ActiveDocument + &НаСервере ?
38. sergathome 03.07.18 16:13 Сейчас в теме
(36) пытался объяснить как то же самое сделать на клиенте. сдаюсь. не смог.
40. kare 21 03.07.18 16:35 Сейчас в теме
(38) я правильно понимаю Вас? Вы рекомендуете все шаблоны переписать на клиент ручками пересохранив Макет в doc потом загрузив обратно в макет двоичные данные далее переписать везде код для работы с клиентом и организовать заполнение на клиенте? и это все из за дерганья com на серевере? риали?
43. sergathome 03.07.18 16:38 Сейчас в теме
(40) исполните вот это и вкурите уже что такое волшебный ваш ActiveDocument
&НаКлиенте
Процедура ОткрытьАктивДокумент()
//На клиенте получаем макет и заполняем его предварительно полученными данными
	ДвоичныеДанныеМакета = ПолучитьИзВременногоХранилища(ПолучитьМакетСКлиента("Макет"));
    ИмяВрем = ПолучитьИмяВременногоФайла(".doc");
    ДвоичныеДанныеМакета.Записать(ИмяВрем);
			
	Документ = ПолучитьCOMОбъект(ИмяВрем); 
    Документ.Application.Visible = Истина;
    Документ.Application.WindowState = 2;
    Документ.Application.WindowState = 1;
    Документ.Activate();
КонецПроцедуры

&НаКлиенте
Функция  ПолучитьСОМОбъект(ИмяФайла)
	Word = Новый COMОбъект("Word.Application");
	Word.Displayalerts = 0;
	ДокументWord = Word.Application.Documents.Open(ИмяФайла);
	Возврат ДокументWord;
КонецФункции

&НаСервереБезКонтекста
Функция ПолучитьМакетСКлиента(Имя)
// Получаем макет и преобразуем его в двоичные данные	
	лМакетОболочка = ПолучитьОбщийМакет(Имя);
    ИмяВрем = ПолучитьИмяВременногоФайла(".doc");
    лМакетОболочка.Записать(ИмяВрем);
	лМакет = Новый ДвоичныеДанные(ИмяВрем);
    Возврат ПоместитьВоВременноеХранилище(лМакет);
КонецФункции
Показать

Насчет рили будете смеяцо когда сервак завалится при паре сотне юзеров в базах ;)) и будет падать каждые полчаса...
45. kare 21 03.07.18 16:52 Сейчас в теме
(43)
-Владимир Владимирович, женщина может стать президентом ?
-Нет!
-Почему же?
-Я же не женщина.

можно АД сохранить в файл и передать на клиент без участия COM. Только всю логику в каждой обработке заполнения придется переделать под клиент когда она сделана под СЕРВЕР. из за того что бы не менять пару строчек кода и опять про преимущества клиента почитайте (39).
47. sergathome 03.07.18 16:54 Сейчас в теме
(45) это свежий аргумент. ушёл думать. раньше следующего понедельника не ждите.
48. kare 21 03.07.18 16:59 Сейчас в теме
(47)будем скучать, возвращайтесь.
49. kare 21 03.07.18 17:02 Сейчас в теме
(43)
Насчет рили будете смеяцо когда сервак завалится при паре сотне юзеров в базах ;)) и будет падать каждые полчаса...


я не смеюсь, серьезно. Просто я не понял : "Переделываем все на клиент !!!!!!" когда проблема решилась и больше не возвращалась.
44. sergathome 03.07.18 16:46 Сейчас в теме
(42)
будете смеяцо когда сервак завалится при паре сотне юзеров в базах ;)) и будет падать каждые полчаса...

рецепт 18 работает только для docx, на минуточку...
46. kare 21 03.07.18 16:53 Сейчас в теме
(44) Опечатка (39)
смеяцо

153 пользователя полет нормальный.
33. kare 21 03.07.18 15:43 Сейчас в теме
(29) То что данное решение имеет свои плюсы так как выполняется на клиенте это факт. Но я разве ставил под сомнение это?
54. klinval 287 05.07.18 15:05 Сейчас в теме
Конечно прикольно когда проблему описанную в моей статье кто-то решает другим способом, а потом этот другой способ тоже пробуют переделать (плюс параллельно обоснуют и докапываются до причины ошибки)...

Я только одного не понял: а создание папок проблему уже не решает?
C:\Windows\SysWOW64\config\systemprofile\Desktop
C:\Windows\System32\config\systemprofile\Desktop

Плюс можно банально отказаться от ActiveDocument и работать с двоичными данными. Пробовали?

См. тут и тут
55. kare 21 05.07.18 16:24 Сейчас в теме
(54)
1)изначально были в системе до появления "сбоя".
2)Да.
60. klinval 287 09.07.18 15:19 Сейчас в теме
(55) Нашёл свой же комментарий (тут: https://infostart.ru/public/407448/):
Макет = Документы.ДоговорыКонтрагентов.ПолучитьМакет("ActiveDocument");
Макет.Записать(ПолноеИмяФайла);

Так вот как оказывается можно ещё сохранить! Не заметил, что у ОболочкаActiveDocument есть метод Записать. Обязательно обновите статью, т.к. многие сваливаются на методе SaveAs, а Записать() у ОболочкаActiveDocument фактически является альтернативой

Сама статья тут: https://infostart.ru/public/270277/

Ни у меня ни у CeHbKA эту проблему хоть и касались, но так полно и подробно как у вас и у https://infostart.ru/public/568913/ не разбиралась, поэтому по любому плюс за статью))
56. kiruha 382 05.07.18 17:57 Сейчас в теме
а нельзя ли
вместо
Word = Новый COMОбъект("Word.Application");
Word.Displayalerts = 0;
ДокументWord = Word.Application.Documents.Open(ВременныйФайл); /

изменить на
Word = ПолучитьCOMОбъект(ВременныйФайл);
 

тк создание COMОбъект в большом количестве приводит к невозможности его создания
При ПолучитьCOMОбъект такого не происходит, даже когда Новый COMОбъект уже не работает
57. kare 21 06.07.18 13:00 Сейчас в теме
(56)можно , в коде указанно.

ДокументWord = Word.Application.Documents.Open(ВременныйФайл); // Можно попробовать через ПолучитьCOMОбъект().
58. aspirator23 412 07.07.18 14:27 Сейчас в теме
Вроде бы все вопросы задали. Остался главный. А что это за фильм с Траволтой? -:)
59. kare 21 07.07.18 22:24 Сейчас в теме
Оставьте свое сообщение

См. также

Программная работа с настройками СКД

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    5468    ids79    25       

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

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

от 11000 рублей

[СКД] Программное создание схемы компоновки данных

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    7396    John_d    21       

30 задач. Странных и не очень

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    9305    YPermitin    72       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

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

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

Агрегатные функции СКД, о которых мало кто знает

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    24088    ids79    45       

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

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

Три костыля. Сказ про фокусы в коде

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    15908    YPermitin    76       

Отслеживание выполнения фонового задания

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

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    18271    ids79    16       

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

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

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

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    33285    ids79    36       

Фоновое выполнение кода в 1С - это просто

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

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019    18357    avalakh    21       

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

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

от 13000 рублей

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    27190    ids79    9       

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

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

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    19633    ids79    27       

Регистры сведений. За кулисами

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

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    14840    YPermitin    12       

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

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

5 500

"Меньше копипаста!", или как Вася универсальную процедуру писал

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    12097    SeiOkami    49       

Создание отчетов с помощью СКД - основные понятия и элементы

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    31768    ids79    17       

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

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

5500 рублей

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    16929    dmurk    144       

Регистры накопления. Структура хранения в базе данных

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

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    27275    YPermitin    27       

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

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

Выполнение внешней обработки в фоновом задании

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

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    17276    Eret1k    23       

Выгрузка документа по условию

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

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    9300    m-rv    2       

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

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

16450 рублей

Как прикрутить ГУИД к регистру сведений

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

... и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019    12434    m-rv    16       

О расширениях замолвите слово...

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    23415    ellavs    125       

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

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

от 1500 руб.

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    18571    ellavs    83       

Трюки с внешними источниками данных

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

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    20429    YPermitin    53