Получение массива имен реквизитов обычной формы и имя ее основного реквизита

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

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

67
Платформа 1С 8 не позволяет получать информацию о реквизитах обычной формы. Эти функции позволят вам получать из любой обычной формы 1С 8.X массив имен ее реквизитов, а также имя ее основной реквизит.
Главные функции - ЛксПолучитьМассивИменРеквизитовФормы и ЛксПолучитьИмяОсновногоРеквизитаФормы. Функция ЛксСтрокаВнутрВХМЛТело взята отсюда //catalog.mista.ru/projects/1801.

Если будете применять в реальном времени, делайте кэширование ДокументDOM.

Функция ЛксСтрокаВнутрВХМЛТело(вхСтрока, выхХМЛТело = Неопределено) Экспорт

   
//{ Получение одной длинной строки
   
выхХМЛТело = СтрЗаменить(вхСтрока,СИМВОЛЫ.ПС,"");
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,СИМВОЛЫ.ВК,"");
   
//}

    //{ Заменяем символы, критичные для XML
    //    & на &
    //    < на <
    //    > на >
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"&","&");
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"<","<");
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,">",">");

   
//{ Замена одинарных символов
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,",","");
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"{","");
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"}","");
   
//}

    //{ Удаляем лишние блоки и
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"","");
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"","");
   
//}

    //{ Добавляем перенос строки к и к для удобства поиска различий
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"",""+СИМВОЛЫ.ПС);
   
выхХМЛТело = СтрЗаменить(выхХМЛТело,"",""+СИМВОЛЫ.ПС);
   
//}

   
Возврат выхХМЛТело;

КонецФункции

Функция
ЛксПолучитьДокументDOMФормы(Форма) Экспорт

   
СтрокаФормы = ЗначениеВСтрокуВнутр(Форма);
   
XMLСтрокаФормы = ЛксСтрокаВнутрВХМЛТело(СтрокаФормы);
   
ЧтениеXML = Новый ЧтениеXML;
   
ЧтениеXML.УстановитьСтроку(XMLСтрокаФормы);
   
ПостроительDOM = Новый ПостроительDOM;
   
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
    Возврат
ДокументDOM;

КонецФункции
// ЛксПолучитьДокументDOMФормы()

Функция ЛксПолучитьXPathИмениРеквизитаВОписанииРеквизита(ИДВерсииПлатформы = "81")

    Если
ИДВерсииПлатформы = "81" Тогда
       
Результат = "/data[3]";
    ИначеЕсли
ИДВерсииПлатформы = "82" Тогда
       
Результат = "/data[4]";
    КонецЕсли;
    Возврат
Результат;

КонецФункции
// ПолучитьXPathИмениРеквизитаВОписанииРеквизита()

Функция ЛксПолучитьМассивИменРеквизитовФормы(Форма, ИДВерсииПлатформы = "81") Экспорт

   
Массив = Новый Массив;
   
ДокументDOM = ЛксПолучитьДокументDOMФормы(Форма);
   
РазыменовательПИ = Новый РазыменовательПространствИменDOM(ДокументDOM);
   
СтрокаXPath = "/elem[1]/elem[1]/elem[2]/elem[2]/elem" + ЛксПолучитьXPathИмениРеквизитаВОписанииРеквизита(ИДВерсииПлатформы) + "/text()";
   
РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(СтрокаXPath, ДокументDOM,
   
РазыменовательПИ, ТипРезультатаDOMXPath.НеупорядоченныйИтераторУзлов);
    Пока
1 = 1 Цикл
       
Узел = РезультатXPath.ПолучитьСледующий();
        Если
Узел = Неопределено Тогда
            Прервать;
        КонецЕсли;
       
Текст = Узел.ТекстовоеСодержимое;
       
Длина = СтрДлина(Текст);
       
Текст = Сред(Текст, 2, Длина - 2);
       
Массив.Добавить(Текст);
    КонецЦикла;
    Возврат
Массив;

КонецФункции
// ЛксПолучитьМассивИменРеквизитовФормы()

Функция ЛксПолучитьИмяОсновногоРеквизитаФормы(Форма, ИДВерсииПлатформы = "81") Экспорт

   
ДокументDOM = ЛксПолучитьДокументDOMФормы(Форма);
   
РазыменовательПИ = Новый РазыменовательПространствИменDOM(ДокументDOM);
   
ИмяЭлемента = "/elem[1]/elem[1]/elem[2]/elem[1]/data[1]/text()";
   
РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(ИмяЭлемента, ДокументDOM, РазыменовательПИ, ТипРезультатаDOMXPath.Строка);
   
КлючОсновногоРеквизита = РезультатXPath.СтроковоеЗначение;

   
ИмяЭлемента = "/elem[1]/elem[1]/elem[2]/elem[2]/elem/elem[1]/data[1]/text()";
   
РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(ИмяЭлемента, ДокументDOM, РазыменовательПИ,
   
ТипРезультатаDOMXPath.УпорядоченныйИтераторУзлов);
   
Счетчик = 1;
    Пока
1 = 1 Цикл
       
Узел = РезультатXPath.ПолучитьСледующий();
        Если
Узел = Неопределено Тогда
            Прервать;
        КонецЕсли;
        Если
Узел.ТекстовоеСодержимое = КлючОсновногоРеквизита Тогда
            Прервать;
        КонецЕсли;
       
Счетчик = Счетчик + 1;
    КонецЦикла;

    Если
Узел = Неопределено Тогда
        Возврат Неопределено;
    КонецЕсли;

   
СтрокаXPath = "/elem[1]/elem[1]/elem[2]/elem[2]/elem[" + Счетчик + "]" + ЛксПолучитьXPathИмениРеквизитаВОписанииРеквизита(ИДВерсииПлатформы) + "/text()";
   
РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(СтрокаXPath, ДокументDOM, РазыменовательПИ, ТипРезультатаDOMXPath.Строка);
   
Длина = СтрДлина(РезультатXPath.СтроковоеЗначение);
    Возврат
Сред(РезультатXPath.СтроковоеЗначение, 2, Длина - 2);

КонецФункции
// ЛксПолучитьИмяОсновногоРеквизитаФормы()

67

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

Комментарии
Избранное Подписка Сортировка: Древо
1. German 870 23.11.08 19:57 Сейчас в теме
2. German 870 23.11.08 20:31 Сейчас в теме
У Брикса вся фишка в том что он не мог на основе двоичных данных(текстовых) получить форму.
Код
СтрокаФормы = ЗначениеВСтрокуВнутр(Форма);
Форма=ЗначениеИзСтрокиВнутр(СтрокаФормы ); //ошибка 
Показать полностью


Потому и затеял эти дела. Форму теперь можно получить из двоичных данных (Как это сделать можно будет посмотреть в новой версии Ei ). Ну а когда есть форма.
Код
Для каждого Элемент из Форма.Элементы.Формы Цикл
Сообщить(Элемент.Имя);
КонецЦикла; 
Показать полностью

3. tormozit 5644 23.11.08 21:03 Сейчас в теме
Боюсь, я не смогу получить двоичные данные формы в общем случае. Поэтому данный способ - единственный.
4. tormozit 5644 24.11.08 12:16 Сейчас в теме
Ждите скорого появления функции для получения основного реквизита формы. Она уже есть, токо оформить надо.
coder1cv8; +1 Ответить
5. coder1cv8 3457 24.11.08 12:28 Сейчас в теме
Высший класс!!! +100 от меня!
6. coder1cv8 3457 24.11.08 12:30 Сейчас в теме
+(5) Про основной реквизит тоже очень интересно посмотреть.
7. tormozit 5644 26.11.08 08:03 Сейчас в теме
(6) Готово. Реквизиты формы покорены... )
8. Sol 54 30.11.08 13:28 Сейчас в теме
А в этой части не напутано?
> //{ Заменяем символы, критичные для XML
>// & на &
.........

Вроде в http://infostart.ru/profile/16971/blogs/344/ в (11) было правильно:
> //{ Заменяем символы, критичные для XML
>// & на &
.........
9. tormozit 5644 01.12.08 21:42 Сейчас в теме
(8) Это движок форума постарался ;)
13. tormozit 5644 06.02.09 12:46 Сейчас в теме
(8) Люди, помогите с проблемой отображения злых символов (&)!
10. tormozit 5644 01.12.08 21:53 Сейчас в теме
Теперь стало некрасиво, зато правильно) Не знаю как в новом форуме оформить код... =(
11. Sol 54 01.12.08 21:55 Сейчас в теме
А я не пойму даже, как комментарии упорядочить, чтобы как раньше - новые были сверху.
12. tormozit 5644 01.12.08 22:33 Сейчас в теме
(12) Согласен. Последние сверху - очень рульно было.
14. larisab 159 02.06.09 20:09 Сейчас в теме
Не могли бы вы еще раз привести функцию ЛксСтрокаВнутрВХМЛТело в виде кода, а не текста, без лишних \, видимо убирая их, что то оставила или удалила лишнюю. Дает ошибку в XMLСтрокаФормы.

15. larisab 159 02.06.09 21:21 Сейчас в теме
Сделала, в итоге применения этого метода (0) параметр: КакойТоОбъект.ПолучитьФорму("ФормаЭлемента")), возращает строку "СправочникОбъект", а не массив реквизитов формы и ее основной реквизит.
16. tormozit 5644 02.06.09 21:29 Сейчас в теме
(15) Вставил как есть. Теперь отображается вроде нормально.
17. larisab 159 02.06.09 21:45 Сейчас в теме
(16) А насчет "возращает строку "СправочникОбъект", а не массив реквизитов формы и ее основной реквизит."
Как получить элементы формы?
18. tormozit 5644 02.06.09 21:49 Сейчас в теме
(17) Вопрос не ясен. Прошу сформулировать четко, что ты хочешь получить. Функции проверены на практике. Они возвращают именно то, что заявлено.
19. larisab 159 02.06.09 21:55 Сейчас в теме
ФормаОбъекта = ГрафикОбъект.ПолучитьФорму("ФормаЭлемента");
ПолученнаяФорма = ЛксПолучитьИмяОсновногоРеквизитаФормы(ФормаОбъекта);
Хочу в текст кнопки Месяц вставить:
ТекущаяКнопка = Формат(ДатаМесяца, "ДФ=""ММММ гггг""");
ПолученнаяФорма.КоманднаяПанельКалендаря.Кнопки.Месяц.Текст = ТекущаяКнопка;
20. larisab 159 02.06.09 22:09 Сейчас в теме
+19 ГрафикОбъект это уже полученный СправочникОбъект ГрафикиРаботы в ЗУПе.
21. vladnet 253 04.06.09 23:21 Сейчас в теме
+1 Искал давно как то как получить имя основного реквизита формы, жаль тогда не нашел )
22. vladnet 253 16.12.09 13:28 Сейчас в теме
В 8.2 не работает ни получение списка реквизитов, ни получение основного реквизита. :(
23. tormozit 5644 28.08.10 15:29 Сейчас в теме
(22) Теперь работает и в 8.2. Единственное - не стал делать получение версии платформы из системной информации в нужном формате. Т.е. нужно в функцию версию платформы передавать в виде строки "81" или "82"
24. vladnet 253 29.08.10 10:56 Сейчас в теме
25. Akela_Crimea 30.08.10 11:12 Сейчас в теме
Я так понял, что с управляемыми формами эта фича не работает?
Или это я глючу?
26. tormozit 5644 30.08.10 11:19 Сейчас в теме
(25) Да. Управляемые формы не поддерживаются.
27. mt171 01.10.10 10:42 Сейчас в теме
tormozit, спасибо за разработку!
Только у меня (8.2.12.80 + ЗУП 2.5.27.6) выдаёт ошибку:

Ошибка при вызове метода контекста (Прочитать): Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty

ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
по причине:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty

В чём может быть причина? Вызываю из модуля формы при открытии, в качестве параметра ЭтаФорма,"82". Сама строка XMLСтрокаФормы заполнена
42. frc 19.07.12 16:49 Сейчас в теме
(27) mt171,
ну да, видимо, с 2010 года так ничего и не изменилось по 8.2 - так не работает получение реквизитов.
28. Sergey K 65 22.03.11 12:24 Сейчас в теме
Кто-нибудь приведите пример, для чего м.б. использован данный функционал? когда требуется программное определения реквизитов формы?
29. HIgor 19 15.12.11 16:29 Сейчас в теме
Вещь полезная. Для неуправляемых форм видимо единственное решение. Но давайте здесь тоже не кастрированную функцию ЛксСтрокаВнутрВХМЛТело запишем :

Функция ЛксСтрокаВнутрВХМЛТело(вхСтрока, выхХМЛТело = Неопределено) Экспорт

//{ Получение одной длинной строки
выхХМЛТело = СтрЗаменить(вхСтрока,СИМВОЛЫ.ПС,"");
выхХМЛТело = СтрЗаменить(выхХМЛТело,СИМВОЛЫ.ВК,"");
//}

//{ Заменяем символы, критичные для XML
// & на "&"
// < на "<"
// > на ">"
выхХМЛТело = СтрЗаменить(выхХМЛТело,"&","&");
выхХМЛТело = СтрЗаменить(выхХМЛТело,"<","<");
выхХМЛТело = СтрЗаменить(выхХМЛТело,">",">");

//{ Замена одинарных символов
выхХМЛТело = СтрЗаменить(выхХМЛТело,",","</data><data>");
выхХМЛТело = СтрЗаменить(выхХМЛТело,"{","<elem><data>");
выхХМЛТело = СтрЗаменить(выхХМЛТело,"}","</data></elem>");
//}

//{ Удаляем лишние блоки и 
выхХМЛТело = СтрЗаменить(выхХМЛТело,"<data><elem>","<elem>");
выхХМЛТело = СтрЗаменить(выхХМЛТело,"</elem></data>","</elem>");
//}

//{ Добавляем перенос строки к и к для удобства поиска различий
выхХМЛТело = СтрЗаменить(выхХМЛТело,"</elem>","</elem>"+СИМВОЛЫ.ПС);
выхХМЛТело = СтрЗаменить(выхХМЛТело,"</data>","</data>"+СИМВОЛЫ.ПС);
//}

Возврат выхХМЛТело;

КонецФункции
Показать
30. tormozit 5644 15.12.11 17:35 Сейчас в теме
31. fomix 26 22.12.11 15:05 Сейчас в теме
Присодиняюсь к [28]
Кто-нибудь приведите пример, для чего м.б. использован данный функционал? когда требуется программное определения реквизитов формы???????????????????????????????????????????
32. AlexO 128 28.12.11 23:21 Сейчас в теме
Тоже не понял - а зачем этот массив получать? ну там деструктивный анализ формы - еще куда ни шло (хотя как его применяют в статьях - сомнительная цель).
Но какое практическое применение данного массива реквизитов?
33. tormozit 5644 29.12.11 00:01 Сейчас в теме
Например это полезно в команде "Отладить источник" в подсистеме ИР, которая открывает консоль кода и передает в нее грубо говоря форму. Контекстная подсказка подсказывает реквизиты формы.
34. frc 19.07.12 12:22 Сейчас в теме
(33)
а что на входе? некая XML-выгрузка?
35. frc 19.07.12 12:27 Сейчас в теме
(34) frc,
а, вроде разобрался - на входе Форма, превращается СтрокаВнутр, потом эта строка разбирается по кускам и перегружается в формат XML-DOM для анализа...
А что такое "делайте кэширование DOM"?
36. tormozit 5644 19.07.12 12:27 Сейчас в теме
(34) На входе чего? На входе команды всегда ключ записи или ссылка.
37. frc 19.07.12 12:30 Сейчас в теме
(36)
На входе чего?

на входе в функцию "ЛксПолучитьМассивИменРеквизитовФормы"
На входе команды всегда ключ записи или ссылка.

т.е. ссылка на ФормаОбъект?
38. tormozit 5644 19.07.12 13:56 Сейчас в теме
(37) Под командой я подразумевал одноименный объект управляемого приложения. Но теперь я вижу что вопрос был про другое.
39. frc 19.07.12 16:03 Сейчас в теме
(38)
На тот вопрос вы и не ответили :)
Вот ошибка так и возникает:
в
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);

{ОбщийМодуль.эрФункцииОбщегоНазначения.Модуль(354)}: Ошибка при вызове метода контекста (Прочитать)
по причине:
{ОбщийМодуль.эрФункцииОбщегоНазначения.Модуль(354)}: Ошибка при вызове метода контекста (Прочитать)

по причине:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty
40. frc 19.07.12 16:04 Сейчас в теме
Могу форму в XML (переменная ЧтениеXML) дать.
41. frc 19.07.12 16:30 Сейчас в теме
В общем, значит так и нельзя получить никаких реквизитов таким методом...
43. tormozit 5644 19.07.12 17:02 Сейчас в теме
Правильный вывод следует сразу же после прочтения названия публикации - "Получение массива имен реквизитов ОБЫЧНОЙ формы и имя ее основного реквизита". Все, кто пробуют метод за рамками описанной области применимости, получают не ожидаемый результат.
soulsteps; CratosX; +2 Ответить
44. sergant500 11.02.13 23:28 Сейчас в теме
Если метод выдает ошибку, то заменяем строки в посте №29 (HIgor)

выхХМЛТело = СтрЗаменить(выхХМЛТело,"&","&");
выхХМЛТело = СтрЗаменить(выхХМЛТело,"<","<");
выхХМЛТело = СтрЗаменить(выхХМЛТело,">",">");


на

выхХМЛТело = СтрЗаменить(выхХМЛТело,"&","&");
выхХМЛТело = СтрЗаменить(выхХМЛТело,"<","<");
выхХМЛТело = СтрЗаменить(выхХМЛТело,">",">");

Спасибо за наводку Сергею Чуяну (Собеседник) http://infostart.ru/public/20069/
вызов функции

Процедура ДополнительныеДействияСФормой(ФормаОбъекта) Экспорт
	ИмяОсновногоРеквизита = ЛксПолучитьИмяОсновногоРеквизитаФормы(ФормаОбъекта);
	ОсновнойРеквизит = ФормаОбъекта[ИмяОсновногоРеквизита]; 
	Если ТипЗнч(ОсновнойРеквизит) = Тип("СправочникОбъект.Контрагенты") Тогда
		Сообщить(ОсновнойРеквизит);
	КонецЕсли;	
КонецПроцедуры


Все хорошо работает, но наблюдается потеря времени при открытии форм.
Например функция УстановитьДоступностьПоляВводаНомера, которая вызывается ПриОткрытии() многих форм документов или элементов справочников затрачивает времени 0,003-004 сек. без проверки основного реквизита. А с проверкой 0,35 – 0,6 и больше в зависимости от сложности формы. Визуально заметна разница во времени. Придется мириться с задержкой примерно в половину секунды при открытии любой из форм.
45. sergant500 11.02.13 23:31 Сейчас в теме
Почему-то движок съедает текст. Нужно читать "заменить на"

выхХМЛТело = СтрЗаменить(выхХМЛТело,"&","& amp;"); // пробел убрать между & и amp
выхХМЛТело = СтрЗаменить(выхХМЛТело,"<","& lt;"); // пробел убрать между & и lt
выхХМЛТело = СтрЗаменить(выхХМЛТело,">","& gt;"); // пробел убрать между & gt
46. Sabfir 08.08.13 11:49 Сейчас в теме
Полезная штука, жаль только, что ресурснозатратная :(
47. Andrei.Rch 6 30.10.14 15:50 Сейчас в теме
После ряда правок успешно завелось на 8.3. Во всех версиях выше есть ошибки из за кривого движка форума. Правильный тест сохранил во вложение.
Прикрепленные файлы:
Общий модуль РеквизитыОбычнойФормыТолстыйКлиент_ Модуль.txt
Mkonst; Азбука Морзе; unoDosTres; tormozit; wtlz; dour-dead; +6 Ответить
Оставьте свое сообщение

См. также

Онлайн-курс "Технология выполнения проектов ERP-класса – процессный подход". Третий поток. Курс проходит с 21 января по 18 марта 2020 года. Промо

Курс разработан Внедренческим центром «Раздолье». Курс предназначен для подготовки аналитиков, архитекторов и руководителей проектов автоматизации процессов управления с использованием комплексных ИТ-систем (1С:ERP, 1С:УХ, 1С:КА, 1С:УТ). В основе курса лежит методика применения процессного подхода.

9000 рублей

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

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

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

05.09.2019    16985    ids79    44       

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

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

6500 рублей

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

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

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

03.09.2019    11258    YPermitin    69       

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

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

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

17.08.2019    13886    ids79    16       

Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо

Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!

29700 руб.

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

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

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

08.08.2019    20091    ids79    34       

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

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

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

02.08.2019    13378    avalakh    21       

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

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

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

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

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

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

26.07.2019    17955    ids79    8       

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

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

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

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

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

17.07.2019    14471    ids79    27       

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

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

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

09.07.2019    11700    YPermitin    12       

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

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

4500/9500 рублей

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

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

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

04.07.2019    10349    SeiOkami    49       

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

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

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

25.06.2019    24866    ids79    17       

Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо

Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.

29700 руб.

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

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

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

11.06.2019    14023    dmurk    134       

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

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

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

16.05.2019    22292    YPermitin    27       

Новогодние скидки на авторское ПО Промо

В преддверии праздника в Маркетплейсе на Инфостарт действует скидка на все платные авторские программы. Размер скидок начинается от 10%. Советуем не откладывать покупки, многие наши партнеры повышают цены на свои продукты именно в начале нового года.

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

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

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

11.05.2019    14120    Eret1k    23       

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

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

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

25.04.2019    8139    m-rv    2       

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

29700 руб.

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

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

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

16.04.2019    10730    m-rv    16       

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

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

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

07.04.2019    19403    ellavs    125       

Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо

Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Предоставляем техподдержку по всем вопросам данного обмена. Можем подключиться к вам удаленно для разбора ситуаций. Оперативно обновляем при выходе новых релизов 1С. Бесплатные обновления в течение полугода.

19700 руб.

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

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

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

28.03.2019    15950    ellavs    83       

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

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

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

14.03.2019    17091    YPermitin    53       

С 2020 года сервис «Продление поддержки конфигурации 1С:УПП» подорожает вдвое Промо

Успейте продлить поддержку УПП до повышения цен! Фирма «1С» предупредила об изменении цен на сервис «Продление поддержки конфигурации "1С:Управление производственным предприятием"». С 1 января 2020 года сервис подорожает в два раза.

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

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

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS) 174

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    19984    ids79    9