Быстрое обновление данных в клиент-серверном варианте (SQL)

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

Разработка - Инструментарий разработчика

быстрое изменение записей SQL

В статье рассматривается инструкция UPDATE языка запросов SQL.

Как мы обычно меняем записи регистров сведений?

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

  Набор = РегистрыСведений.КакойТоРегистрСведений.СоздатьНаборЗаписей();
  Набор.Отбор.Реквизит.Значение = ЗначениеФильтра;
  Набор.Отбор.Реквизит.Использование = Истина;
  Набор.Прочитать();
  Для Каждого Ст ИЗ Набор Цикл
      Набор.НужнаяКолонка = НужноеЗначение;
      Набор.НоваяКлонка = Набор.КолонкаСоСтанымЗначением;
  КонецЦикла;
  Набор.Записать();

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

  Запрос = Новый Запрос(
  "ВЫБРАТЬ
  |  НужнаяКолонка КАК НужнаяКолонка,
  |  КолонкаСоСтанымЗначением КАК НоваяКлонка,
  |  Реквизит,
  |  Реквизит1,
  |  Реквизит2
  |ИЗ
  |  РегистрыСведений.КакойТоРегистрСведений
  |ГДЕ 
  |  Реквизит = &ЗначениеОтбора");

  Запрос.УстановитьПараметр("ЗначениеОтбора");
  Для Каждого Ст ИЗ Запрос.Выполнить().Выгрузить() Цикл
      Запись = РегистрыСведений.КакойТоРегистрСведений.СоздатьМенеждерЗаписи();
      ЗаполнитьЗначенияСвойств(Запись, Ст);
      Запись.Записать();
  КонецЦикла;

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

 

Как можно поменять записи колонок таблиц в SQL, не трогая остальное?

Данный вопрос можно очень быстро решить с помощью инструкции UPDATE языка запросов SQL.

Сделать это можно так:

    UPDATE [MyBase].[dbo]._InfoReg1234
        SET _Fld5678 = 1
    WHERE _Active = 0

Собственно, здесь мы просто заполняем поле _Fld5678 таблицы _InfoReg1234 значением "1". Если тип поля _Fld5678 булево, то считайте, что вы проставили "ИСТИНА" во всех активных записях регистра.


Как понять, в каком поле какой таблицы SQL что хранится?

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

  Для Каждого Стр ИЗ ПолучитьСтруктуруХраненияБазыДанных(,Истина) Цикл

    НовСтр = ТаблицаБазДанных.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтр,Стр);

    Для Каждого стр1 ИЗ Стр.Поля Цикл

      НовСтр = Поля.Добавить();
      ЗаполнитьЗначенияСвойств(НовСтр,Стр1);

    КонецЦикла;

  КонецЦикла;

После выполнения данного кода у вас в таблице значений "ТаблицаБазДанных" будет находится список таблиц, а в таблице значений "Поля" - список полей. Если для каждого элемента первой таблицы добавить некий индекс и прописать его для всех элементов второй таблицы, то будет достаточно просто искать во второй таблице поля для нужной таблицы базы данных. Сама по себе структура этих таблиц подробно описана в справке по 1С.

 

Рабочий пример:

 

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

 

Дано:

  1. Документ "КакойТоДокумент", таблица SQL "_Document55";
  2. Поле, в которую нужно записать сумму "_Fld12507";
  3. Табличная часть "_Document55_VT172";
  4. Поле табличной части, содержащее сумму "_Fld749"

Итак, давайте напишем скриптик для SQL, который все, что нам нужно, сделает за считанные минуты даже если у нас не одна сотня тысяч документов:

UPDATE _Document55
    SET _Fld12507 = SUM(t2._Fld749)
FROM _Document55 AS t1
LEFT JOIN _Document55_VT172 AS t2
  ON t1._IDRef = t2._Document55_IDRRef
GROUP BY 
  t1._IDRef

Собственно, все.

 

Что мы тут написали?

  1. Мы указали UPDATE для таблицы "_Document55", т.е. мы будем именно эту таблицу обновлять.
  2. Мы указали, что поле "_Fld12507" мы будем заполнять результатом агрегатной функции SUM - сумма - для поля "_Fld749" таблицы t2 ("_Document55_VT172").
  3. Стандартное FROM (ИЗ) и имя таблицы нашего документа.
  4. LEFT JOIN (ЛЕВОЕ СОЕДИНЕНИЕ) - соединяемся с табличной частью по (ON) ссылке.
  5. GROUP BY (ГРУППИРОВАТЬ ПО) - группируем по ссылке.


Заключение.

В качестве заключения могу сказать, что SQL не так сложен, как его малюют. На нем вполне реально реализовать не только операции замены каких-то данных, но и весьма существенные процессы, такие, например, как обмен данными между базами. У нас в компании SQL-скрипты применяются весьма часто. В частности, для сравнения данных между многочисленными базами с разнородным содержимым (например, между УТ и БП КОРП).


Также стоит отметить, что в качестве источника можно использовать не только ту же самую базу, но и любую другую. Скажу больше - даже базу данных с другого сервера SQL (для нас это обычная практика, когда сравниваются базы данных, расположенные на разных серверах, разнесенных территориально). Для этого есть соответствующие инструкции языка запросов SQL.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. genayo 21.06.15 08:41 Сейчас в теме
А где собственно обработка с которой скрины?
2. starik-2005 2229 21.06.15 15:33 Сейчас в теме
А зачем Вам? На Инфостарте таких обработок штук сто.
3. genayo 21.06.15 17:47 Сейчас в теме
(2) да в общем незачем, но просто непонятно, к чему скрины тогда...
4. starik-2005 2229 21.06.15 18:29 Сейчас в теме
(3) genayo, скрин как бы намекает, что такая обработка может существовать в природе. Я не публикую обработки - я публикую статьи, прочитав которые грамотный читатель сможет создать такую обработку ))
5. BabySG 22.06.15 08:27 Сейчас в теме
(0) Статья крайне опасна (особенно для начинающих), т.к.:
1. Подобное использование нарушает ЛС
2. Полностью не учитывается, что в событиях объекта может производится дополнительная обработка при постановке/снятии пометки удаления
Проще говоря: чревато разрушением данных
7. starik-2005 2229 22.06.15 10:14 Сейчас в теме
(5) BabySG, Вы отчасти правы - не стоит садить в одну клетку питона и кролика, если, конечно, вы не хотите покормить питона кроликом...

Также стоит заметить, что как минимум две инструкции в 1С крайне опасны: непосредственное удаление объекта через Объект.Удалить() и запись пустого набора записей регистра через НаборЗаписейРегистра.Записать(). Второе аналогично операции TRUNCATE SQL.

(6) Danila-Master, Вы по какой-то причине проигнорировали текст: "Данное ограничение необходимо для обеспечения стабильности работы механизмов системы, осуществления поддержки и возможности перехода на новые версии "1С:Предприятия"." Во встроенном языке платформы множество возможностей удалить или модифицировать данные так, что они перестанут "читаться" 1С. При этом у 1С нет собственных средств, позволяющихъ максимально утилизировать возможности СУБД на базе SQL. Я не предлагаю обращаться напрямую к файлу 1CD (или как его так, в котором содержится файловая база - на инфостарте, кстати, есть пример такой обработки - поищите и возмутитесь), я лишь говорю о том, что неисчерпаемый ресурс производительности заложен в самом механизме серверов SQL - его можно и нужно использовать, да, с умом, но безумный программист, поверьте, и на встроенном языке может причинить кучу непирятностей базе данных. Да и вообще метод "ПолучитьСтруктуруХраненияБазыДанных" указывает именно на "Это означает, что средства СУБД (или любые другие внесистемные средства) можно использовать только в том случае, если документация по продуктам линейки "1С:Предприятие" (включая ИТС) содержит явную рекомендацию использовать данное средство для решения данной задачи." Если уж 1С дала доступ к данным, то она косвенно согласилась, что разработчики могут использовать структуру данных для своих нужд.
9. Danila-Master 105 22.06.15 11:04 Сейчас в теме
(7)
Я не предлагаю обращаться напрямую к файлу 1CD (или как его так, в котором содержится файловая база - на инфостарте, кстати, есть пример такой обработки - поищите и возмутитесь)

При чем тут файл 1CD? Ведь речь идет про доступ к таблицам на уровне SQL

Если уж 1С дала доступ к данным, то она косвенно согласилась, что разработчики могут использовать структуру данных для своих нужд.

Сама 1С трактует этот пукт ЛС обнозначно, что нельзя обращаться к данным информационной базы напрямую. Даже использовать представления SQL нельзя.
А вот "Внешние источники данных" - документированная возможность, поэтому ее использовать можно.
11. starik-2005 2229 22.06.15 12:44 Сейчас в теме
(9) Danila-Master, внешние источники работают весьма неплохо на чтение, но попытки 1С сделать запись в них пока весьма смехотворны - валится в дедлоки, хотя вроде причин для этого нет никаких. Вот когда сделают что-то действительно стоящее - будем использовать, пока же работа механизма крайне неудовлетворительна. А их пункт 64 весьма противоречив. ни одна уважающая себя контора не напишет о том, что к базам данных, расположенным на серверах под управлением сторонних СУБД, нельзя обращаться с помощью инструментов тех самых сторонних СУБД. Надеюсь, 1С осознает весь трагизм и глупость ситуации и убьет автора данного пункта об свою желтую стену )))
14. BabySG 23.06.15 08:47 Сейчас в теме
(7) объектные методы вызывают обработчики платформы, где может содержаться некая логика. Это очень существенное отличие от указанных методов прямых запросов.
Я сам, конечно, применял подобное, но не "в лоб". В большинстве случае нужно было писать запросы намного сложнее, либо организовывать постобработку средствами 1С.
Подобные методы точно не для начинающих - так данные снесут только в путь. Ведь это имеет смысл только для больших и очень больших баз. а в момент допуска к таким базам уже должны быть соответсвующие знния (как минимум на уровне сертификата проф. эксперта)
15. starik-2005 2229 23.06.15 09:22 Сейчас в теме
(14) BabySG, вот никогда сертификатами не заморачивался - всегда считал, что лучше пойти на семинар по ТРИЗ, чемнакурсы по 1С.

Программировать нужно учиться, умея прежде всего думать, а не наоборот))
6. Danila-Master 105 22.06.15 08:58 Сейчас в теме
http://v8.1c.ru/predpriyatie/questions_licence.htm
Пунк 65:
...
Нельзя обращаться к данным информационной базы напрямую, минуя уровень объектов работы с данными "1С:Предприятия" - например при помощи средств СУБД или при помощи внешних компонент, которые реализуют прямой доступ к СУБД. Это ограничение распространяется на любые действия с данными, в том числе на изменение их структуры, а так же на чтение или изменение самих данных информационной базы или служебных данных "1С:Предприятия".
...
32. engineer74 01.08.15 13:27 Сейчас в теме
(6) Danila-Master, а как быть тем у кого базы большие . где реструтуризации идут сутки? или 1с не использовать в больших предприятиях?
33. starik-2005 2229 01.08.15 13:31 Сейчас в теме
(32) engineer74, судя по всему - не стоит ))
8. starik-2005 2229 22.06.15 10:16 Сейчас в теме
А вообще, я давно коллекционирую фобии разработчиков. Вот, пожалуйста, одна из них во всей красе. )))
10. Danila-Master 105 22.06.15 11:10 Сейчас в теме
(8) Вы не первый, кто поднимает подобную тему. Именно для этого и был создан п.64, который разъясняет политику ЛС.

А дальше уже Ваше право делать что-то или не делать. В конце концов, всем неоднократно объясняют, указывают на закон, что пяьным за руль садиться нельзя, но есть такие: "Ну я же чуть-чуть!"

Дальнейшая полемика, имхо, бессмысленна.

Хотя, замечу, тоже был бы не против прямого доступа к данным.
12. starik-2005 2229 22.06.15 13:52 Сейчас в теме
(10) Danila-Master, на это только одно ответить могу: делали, делаем и делать будем. Иначе может получиться, что и бэкап средствами симантека делать нельзя, т.к. в документации описана лишь возможность делать бэкапы встроенными средствами SQL-сервера. Надеюсь, они добавят пункт о том, что любые действия с БД вне контекста 1С:Предприятие осуществляются на свой страх и риск - тогда все и всем станет ясно.
13. genayo 22.06.15 20:01 Сейчас в теме
(10) А если нарушить этот пункт соглашения, тогда наступит что? Что 1С сделает с виновным, перестанет предоставлять обновления?
16. vde69 913 24.06.15 08:16 Сейчас в теме
1с не зря исключила прямые апдейты.... конечно в исключительных случаях наверно они нужны, но поверьте мне не стоит они тех последствий...

сделав что-то с данными нештатно Вы
1. не оставляете следов (не понятно кто и чего менял)
2. отключаете все программные реакторы (подписки и прочее)
3. обязаны следить за кучей связанных таблиц (планы обменов, последовательности, журналы, критерии поиска и т.д.)

по этому не рекомендую
zqzq; nSpirit2; Steelvan; +3 Ответить
19. starik-2005 2229 24.06.15 11:39 Сейчас в теме
(16) vde69, в ряде случаев следить действительно надо. Но при заполнении новых реквизитов проблем никаких - абдейтим ровно одну таблицу.

Если говорить о ссылочных типах, то отличия появляются только при составном типе данных - там появляется поле TRef и Type, в первом из которых хранится номер объекта (для документа с таблицей _Document55 это значение будет 55), во втором хранится тип элементов метаданных - там тоже все просто. В 90% случаев связанность данных нарушить не получиться, в остальных случаях надо тестировать на копии.

(17) kalimehtar, безопасно, но, действительно, 1С кеширует выборки. Иногда изменения появляются через несколько минут (если вы открывали объект, потом меняли данные скриптом, потом открыли объект еще раз). Все зависит от кеша rphost'а - можно просто рестартануть сервис и все встанет на свои места срезу. Но это касается именно объектов. При выполнении запроса обращение идет непосредственно к таблицам SQL, поэтому данные будут актуальны.

(18) fvadim, можно и через профайлер, только к чему такие извращения?
17. kalimehtar 21 24.06.15 08:20 Сейчас в теме
Насколько это безопасно при работающем 1С?
Сервер 1С, я предполагаю, часть данных кэширует. И после такого "обновления", до перезапуска он про изменения не узнает.
18. fvadim 8 24.06.15 10:11 Сейчас в теме
Если знаешь и понимаешь, что делаешь, почему бы и нет. Только я названия таблиц и полей через профайлер вытаскивал.
20. Steelvan 5 30.07.15 19:51 Сейчас в теме
Я, когда готовился сдавать на эксперта, тоже этим баловался.

А потом, когда начал писать тиражные решения, понял что лучше писать нормальным языком 1С.

Это можно использовать на локальных решениях в качестве саморазвития. И только.

Грамотно построенная система с правильным обслуживанием хорошо работает и без таких "штук".
21. starik-2005 2229 30.07.15 21:30 Сейчас в теме
(20) Steelvan, тогда ответьте, как достаточно быстро заполнить новый реквизит в документе, если документов в базе примерно 5кк? У нас, например, есть четыре документа, в которые мы добавили общие реквизиты. Общее число документов примерно 5кк. 1С через Объект.Записать(РежимЗаписи.Запись) обновляет не только сам документ, но и пять-семь его табличных частей. Я тут посчитал - стандартный механизм в 10 потоков будет заполнять новый реквизит примерно 18 часов (в один поток - 180 часов). Инструкция UPDATE обновила таблицы за 4 минуты, посчитав сумму из табличных частей и поместив результат в таблицу основного документа. Вот пока 1С не научится записывать хотя бы основную таблицу документа без его табличных частей, народ будет стараться вместо добавления реквизита в документ, добавлять допреквизит и огребать проблемы с блокировками, трудности с разделителями данных и прочие "плюшки".

А вот то. что специалистов, способных написать качественный и быстрый запрос на SQL крайне немного - вот это действительно проблема. И такие специалисты в разработке высоконагруженных сервисов будут нужны не особо.
22. Steelvan 5 31.07.15 11:17 Сейчас в теме
Пишите вы грамотно, вам бы еще "не" поменьше использовать. Текст на порядок лучше читаться будет.

"...обновляет не только сам документ, но и пять-семь его табличных частей..."
...обновляет и сам документ и пять-семь его табличных частей...

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

"И такие специалисты в разработке высоконагруженных сервисов будут нужны не особо. "
Здесь запутано, как понимать ?
И такие специалисты в разработке высоконагруженных сервисов будут ЛИШНИЕ ?


После рефакторинга модулей на 10 000 строк понимание важности восприятия постепенно, но приходит.


А если по сути, то я вам и писал "Это можно использовать на локальных решениях".

Хотя, конечно, это можно использовать везде. Только кто это будет покупать и тем более поддерживать. И рискованно выстраивать на таких конструкциях серьезный функционал. Большой риск что на следующей версии платформы это придется переписывать. Вот такой ответ без "не" ;)
24. starik-2005 2229 31.07.15 14:02 Сейчас в теме
(22) Steelvan, писать-то я научился не только на SQL, что, полагаю, не может вас не радовать (должно радовать).

Рефакторинг модуля на 10 000 строк - это что? Я на днях типовое проведение документов в "1С Бухгалтерия 2.х" переписал полностью, ибо уровень программистов из 1С оставляет надежду лишь на то, что они на рынке труда внезапно окажутся ЛИШНИМИ ))) Разве это может увеличить мою значимость здесь? Вряд ли.

Но проблему мы с Вами одну обозначили - крайне мало специалистов, способных обеспечить приемлемое качество.кода не только при использовании SQL, но и при использовании самого внутреннего языка платформы 1С.
26. nSpirit2 31.07.15 14:32 Сейчас в теме
(24)
Рефакторинг модуля на 10 000 строк - это что? Я на днях типовое проведение документов в "1С Бухгалтерия 2.х" переписал полностью, ибо уровень программистов из 1С оставляет надежду лишь на то, что они на рынке труда внезапно окажутся ЛИШНИМИ ))) Разве это может увеличить мою значимость здесь? Вряд ли.


А что вы там переписали если не секрет ?

(25) Тут скорее понимание взаимодействия платформы со SQL. Но имхо это очень редкая задача изменить 5кк старых документов без перепроведения просто установив реквизит ;)
27. starik-2005 2229 31.07.15 16:03 Сейчас в теме
(26) nSpirit2, переписал партионку - оптимизировал запросы, реализовал стек партий для группового проведения; изменил механизм зачета авансов - добавил отрицательные суммы в реализациях товаров и услуг и возврате товаров от клиента, реализовал верное отражение данных на 62-м счету (без "бабочек"). Добился адекватной работы при регистрации документа в последовательности, реализовал в итоге приемлемое количество ожиданий на блокировках при многопоточном проведении (соответственно, и при одновременном проведении документов несколькими пользователями)..

Ну и по мелочи со счетами учета...
28. Steelvan 5 31.07.15 18:01 Сейчас в теме
(24)

Хм, обидчивый, а воспитание видимо запрещает. гы гы гы
29. starik-2005 2229 31.07.15 18:09 Сейчас в теме
(28) Steelvan, А "видимо", видимо, надо запятыми отделять от основного предложения. А у Вас как-то это невидимо...
23. nSpirit2 31.07.15 12:55 Сейчас в теме
Не стоит так делать никогда особенно прочитав такое на инфостарте.

UPDATE [MyBase].[dbo]._InfoReg1234
SET _Fld5678 = 1
WHERE _Active = 0


Только надо помнить о то что кроме этой таблички регистра есть еще и таблица _InfoRegChangeRec1234 которую не стоит забыть, а то плохо потом будет.
Также как у документов есть _DocumentChangeRec.
Если есть планы обмена то все эти фокусы со скулем могут плохо выйти.
Ну и не стоит забывать о реквизитов составного типа, которые тоже хранятся особым образом.
25. starik-2005 2229 31.07.15 14:05 Сейчас в теме
(23) nSpirit2, если у вас есть РИБ - это, конечно, нужно учитывать. Но лучше запустить скрипт для каждой из баз, чтобы не тащить туда миллионы записей.

Нет, я, конечно, понимаю, что тут в основном программисты начинающие, но надо как-то расти. И как раз стараюсь обозначить точки роста, показать горизонты. А то этакие тепличные существа мира 1С постоянно будут жаловаться на проблемы платформы и отказывать заказчикам в быстром решении проблем исключительно на базе собственного незнания механизмов, выходящих за рамки платформы.
engineer74; +1 Ответить
30. Steelvan 5 31.07.15 18:50 Сейчас в теме
А это была проверка на внимательность. Давай зачетку !
31. starik-2005 2229 01.08.15 12:30 Сейчас в теме
(30) Steelvan, не знаю, что такое "зачетка". Не использован никогда.
37. Steelvan 5 01.08.15 21:46 Сейчас в теме
(31)

Если вы первый раз слышите слово "зачетка" и у вас нет опыт работы с ней, то спросите у гугла.
38. starik-2005 2229 01.08.15 23:48 Сейчас в теме
(37) Steelvan, это какая-то бумажка, куда преподаватель за хорошие глаза, посещение лекций или бутылку водки ставит "хор", без оного "уд", а при длинных ногах "отлично"? Да в гробу я такое образование видел ))) Гордиться таким могут только идиоты, поэтому те, кто вспоминает про зачетки, ассоциируются у меня с прогнувшимися под систему не очень умными людьми исключительно.
34. engineer74 01.08.15 13:35 Сейчас в теме
Старик давай разваивай тему. мне нрвятся твои статьи. Интересно: алгоритм получение строки подключения именно в текущей базе (чтобы копия случайно вживую не залезла.). Тема реструктуризации больших баз. Логирование изменений регистра сведений посредством тригеров. Представления в ms sql c "человеческим названием". ну и дальше по пути оптимизации производительности.
35. starik-2005 2229 01.08.15 14:24 Сейчас в теме
(34) engineer74, тут одна опасность - при таком подходе становится не нужна 1С, как средство. Кое-где ее использовать действительно не стоит.
36. engineer74 01.08.15 14:58 Сейчас в теме
(35) пока 1с это стандарт - код можно передать другим для поддержки и развития - это требования.
39. starik-2005 2229 14.12.19 01:28 Сейчас в теме
Сегодня узнал, что такой скрипт обновления в постгресе не будет работать (т.е. будет, но выборка будет очень большая, если план запроса посмотреть - квадрат от количества строк, ибо для каждой строки, если таблицу еще раз упомянуть в FROM, будет выбраны все строки еще раз). В итоге в FROM для постгреса надо писать сразу вторую таблицу, и в место джоина - WHERE и там условие соединения.
Оставьте свое сообщение

См. также

Легкий способ обновления измененной конфигурации Промо

Инструментарий разработчика v8 Бесплатно (free)

Легкий способ обновления измененной конфигурации. Сервис подготовки расширения конфигурации

25.10.2017    23730    avk72    63    

Отладка в Infostart Toolkit

Консоль запросов Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Отладка запросов, схем компоновки данных, просмотр содержимого менеджера временных таблиц.

05.11.2020    2610    Evg-Lylyk    16    

Улучшенный конструктор запроса тонкого клиента (Infostart Toolkit)

Инструментарий разработчика Консоль запросов v8 1cv8.cf Бесплатно (free)

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

07.09.2020    3188    Evg-Lylyk    13    

Пробуем Снегопат (устанавливаем и настраиваем полнофункциональную триальную версию)

Снегопат, openconf v8 Бесплатно (free)

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

31.08.2020    9151    kuntashov    67    

Универсальная функция для программного выполнения СКД Промо

Инструментарий разработчика Универсальные функции v8::СКД 1cv8.cf Бесплатно (free)

Часто встречаются вопросы на форумах о программном формировании СКД. Вроде и информации много по этому поводу, но... Все как всегда :) Собственно, в описании без лишних слов выложен текст общей функции, в которую, для выполнения отчета, нужно передать (минимум 2 параметра): СКД и ТабличныйДокумент.

20.05.2015    30743    dj_serega    18    

paste1c.ru - сервис для обмена кодом для 1С:Предприятия

Прочие инструменты разработчика v8 Бесплатно (free)

Paste1C.ru - сервис для обмена кодом для 1С:Предприятия c подсветкой синтаксиса и подсказками.

21.08.2020    5902    salexdv    48    

1С:EDT. Куда пинать, чтобы полетело?

EDT v8 УНФ Россия Бесплатно (free)

Работал в 1С Конфигуратор и решил перейти на 1С EDT. Не получилось сразу. Потребовалась модификация компьютера.

19.08.2020    4744    pa240775    33    

Снегопат – Dev или Ops?

Снегопат, openconf v8 Бесплатно (free)

Снегопат – программный комплекс, повышающий эффективность работы в конфигураторе 1С. О новом эволюционном этапе проекта, его возможностях и планах развития на митапе «DevOps в 1С» рассказал разработчик Снегопата, системный программист компании Инфостарт Александр Орефков.

17.08.2020    5076    orefkov    44    

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

Инструментарий разработчика v8 Бесплатно (free)

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

09.02.2015    33495    boogie    21    

Динамический список, ключи записей. Нюансы

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

Заметки об особенностях динамических списков с произвольным запросом и видом ключа, отличным от "Авто"

07.08.2020    2005    Yashazz    4    

Редактор HTML

Инструментарий разработчика Прочие инструменты разработчика v8 1cv8.cf Россия Бесплатно (free)

Инструмент из состава набора "Универсальные инструменты 1С" для быстрой адаптации html страниц для корректного отображения в Поле HTML документа

03.08.2020    1450    cprit    3    

Глобальное меню разработчика для управляемых форм

Инструментарий разработчика v8 v8::УФ 1cv8.cf Бесплатно (free)

Подсистема "Инструменты разработчика". Глобальное контекстное меню разработчика для управляемых форм в толстом клиенте.

03.08.2020    3607    tormozit    14    

Сервис обмена кодом Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Бывало так, что вам нужно быстро показать кому-то свой код, но опубликовать его негде, так как популярные сервисы просто не поддерживают раскраску кода 1С? Теперь решение есть!

26.06.2015    20547    Infactum    23    

Консоль кода и зачем она нужна

Прочие инструменты разработчика v8 Бесплатно (free)

Когда использовать, обзор консолей кода: плюсы - минусы.

27.07.2020    4744    Evg-Lylyk    47    

Unit-тесты с помощью 1C:Enterprise Development Tools

EDT v8 Бесплатно (free)

Концепция TDD требует перестроения подходов к разработке и наличия инструментов для запуска Unit-тестов. Про написание плагина для EDT, который содержит в себе инструменты написания, анализа результатов и запуска Unit-тестов для конфигураций 1С на конференции Infostart Event 2019 Inception рассказал ведущий специалист по внедрению компании 1С-Рарус Александр Капралов.

11.06.2020    4186    doublesun    7    

Обработка кодом результата запроса в Консоли запросов 9000

Консоль запросов v8::Запросы Бесплатно (free)

Пять вариантов обработки кодом в консоли запросов 9000: простое выполнение, построчно без индикации, построчно с индикацией, простое в фоне, построчно в фоне с индикацией.

01.06.2020    1574    kuza2000    7    

1C:Enterprise Development tools (EDT) или кодим в Eclipse Промо

EDT v8 Бесплатно (free)

Как и выход мобильной платформы был для оооочень большого числа разработчиком открытием, так и я уверен, что и о новом конфигураторе - тоже мало кто слышал. Поэтому давайте попробуем пробежаться по новому конфигуратору. (Много больших картинок)

11.04.2015    77591    DitriX    297    

Шпаргалка. Автоматическое тестирование внешних отчетов и обработок в нескольких информационных базах

Прочие инструменты разработчика v8 Бесплатно (free)

Используем Автоматизированное тестирование на практике. Простой код для обновления и запуска внешних отчетов и обработок в нескольких ИБ. Создаем рабочее решение с нуля.

02.05.2020    4539    pparshin    21    

Enterprise Development Tools, версия 2020.2 для мобильной разработки. Бег по граблям (серия публикаций от чайника для чайников)

EDT v8::Mobile 1cv8.cf Бесплатно (free)

Небольшие советы, которые сберегут время при работе с Enterprise Development Tools, версия 2020.2.

10.04.2020    4476    capitan    8    

Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    7808    Evg-Lylyk    0    

TurboConf:Шаблоны - сервис для поиска и хранения фрагментов кода Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Сервис добавляет в Конфигуратор возможность поиска и хранения фрагментов кода. Делитесь своими шаблонами с другими разработчиками или используйте уже готовые!

13.08.2014    22569    m.bolsun    68    

EDT + УТ 11.4 + БП 3.0 + Расширения. ЧАСТЬ 03

EDT v8 Бесплатно (free)

Групповая разработка в EDT.

21.01.2020    4489    YuriYuriev    3    

EDT + УТ 11.4 + БП 3.0 + Расширения. Часть 02

EDT v8 Бесплатно (free)

Продолжение "путевых заметок" про EDT...

09.01.2020    6407    YuriYuriev    31    

EDT + УТ 11.4 + БП 3.0 + Расширения. ЧАСТЬ 01

EDT v8 Бесплатно (free)

...продолжаем мучить(ся с) EDT

28.12.2019    6731    YuriYuriev    8    

Подсистема "COMExchange": консоль запросов в режиме «Консоль кода». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

Описана возможность использования обработки «Консоль запросов 1С+ADO» в качестве «консоли кода». При этом имеется возможность помещения результатов вычислений в «табло формул». Кроме результатов вычислений в это «табло» можно также вывести время выполнения и описание обработанных ошибок времени исполнения.

03.04.2014    26116    yuraos    2    

EDT 1.16. Первые 20 часов работы

EDT v8 Россия Бесплатно (free)

Первое знакомство с 1C:Enterprise Development Tools, версия 1.16.0.363.

25.12.2019    10989    YuriYuriev    13    

Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

Практика программирования Инструментарий разработчика v8::УФ Бесплатно (free)

Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

23.12.2019    13339    TitanLuchs    23    

Мониторим производительность с помощью 1С RAS

Инструментарий разработчика Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Подключаемся и анализируем данные через 1С RAS. Необходимо выполнить 5 пунктов и серьезный инструмент мониторинга будет у вас в руках.

19.12.2019    12122    ivanov660    16    

VM1C - виртуальная машина для 1С Промо

Инструментарий разработчика v8 1cv8.cf Россия Бесплатно (free)

Демонстрация возможностей виртуальной машины для 1С. Создаем и выполняем код модулей в режиме Предприятия в реальном времени.

07.06.2013    24245    m.bolsun    46    

Разбор любого JSON-объекта в соответствующую структуру

Инструментарий разработчика WEB v8 1cv8.cf Бесплатно (free)

Данная публикация предназначена разработчикам 1С, которым приходиться разбирать данные формата JSON. Выложенный пример кода создает объект типа Структура, полностью повторяющий структуру данных формата JSON.

13.11.2019    10230    user665435_al.windstorm    15    

Git для 1С-ника и другие технологии групповой разработки

Инструментарий разработчика Git (GitHub, GitLab, BitBucket) v8 1cv8.cf Россия Бесплатно (free)

У многих специалистов в отношении Git сложились стереотипы, мешающие начать работу с этим прекрасным и удобным инструментом. Почему его не стоит бояться, и чем он может упростить жизнь 1С-никам, рассказал архитектор ГК «Невада» Станислав Ганиев.

28.10.2019    13087    stas_ganiev    16    

Про ТабДок или TabDoc Pro

Практика программирования Инструментарий разработчика v8 Бесплатно (free)

Табличный документ – всем знакомый и привычный компонент продукта 1С. Про оптимизацию работы табличного документа, его проблемы и недостатки в своем докладе на конференции Infostart Event 2019 Education рассказал ведущий программист BIA-Technologies Князьков Алексей.

11.09.2019    6733    AKnyazkov    26    

Подсистема "COMExchange", "Консоль запросов 1C + ADO" - сервис обработки выборки запроса: грузим курс «бакса» ЦБРФ из файла *.dbf или *.xlsx. Промо

Консоль запросов v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

На примере загрузки курса валюты продемонстрированы возможности консоли запросов в составе подсистемы "COMExchange" для обработки данных из внешних файлов и их синхронизации с данными информационной базы 1С.

10.03.2013    33322    yuraos    3    

FastCode - сервис шаблонов кода 1С

Инструментарий разработчика v8 Бесплатно (free)

Удобный поиск по базе шаблонов кода, БСП, ответы на вопросы, помощь сообщества программистов 1С. Клиент для поиска прямо в Конфигураторе!

10.09.2019    10382    m.bolsun    23    

Как мы разрабатываем в EDT

EDT Инструментарий разработчика v8 Бесплатно (free)

EDT – это новая среда разработки, на которую сейчас перешли разработчики фирмы «1С». Однако до сих пор существует ряд «белых пятен», касающихся как теоретической, так и практической части применения этого инструмента. Про опыт перехода на разработку в EDT на конференции INFOSTART EVENT 2018 EDUCATION рассказал начальник сектора разработки в компании «Группа Полипластик» Владимир Крючков.

23.08.2019    12896    ivanov660    31    

Быстрый ввод кода

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Упрощение рутинного ввода кода.

19.08.2019    4768    ranis888    13    

Подсистема "COMExchange", консоль запросов, сервис обработки выборки запроса: корректируем регистры или «Берём банк, кассу, экспроприируем экспроприаторов». Промо

Консоль запросов v8 1cv8.cf Россия Бесплатно (free)

На примере шуточного примера продемонстрированы не шуточные возможности консоли запросов в составе подсистемы "COMExchange" для работы с регистрами, подчинёнными регистратору («обнуление» регистров, ввод начальных итогов (сведений), корректировка итогов).

31.03.2013    22580    yuraos    7    

1С:EDT. Первые шаги… или есть ли альтернатива конфигуратору?

EDT v8 Бесплатно (free)

Заменить конфигуратор сложно, а в некоторых случаях невозможно, если, например, нужно оперативно подправить код непосредственно в рабочей конфигурации…

15.08.2019    25815    ellavs    108    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    11465    IvanAT1981    15    

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

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

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

17.07.2019    37522    ids79    27    

Разработка скрипта для проекта Снегопат Промо

Снегопат, openconf v8 1cv8.cf Россия Бесплатно (free)

Подробное пошаговое описание порядка создания скрипта для проекта Снегопат (http://snegopat.ru) на примере скрипта "Авторские комментарии". Затрагивает ключевые особенности объектной модели, реализуемой Снегопатом.

12.02.2012    19901    kuntashov    51    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    20716    Evil Beaver    33    

Групповая обработка (Управляемая консоль отчетов)

Обработка документов Инструментарий разработчика Обработка справочников v8 v8::УФ v8::Запросы 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Статья предназначена тем, кто понимает, зачем нужна групповая обработка в консоли запросов. Рассматривается групповая обработка в консоли Управляемая консоль отчетов.

13.05.2019    9682    Evg-Lylyk    10    

Перенос и резервное копирование настроек конфигуратора

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Удобный перенос между рабочими местами и резервное копирование настроек конфигуратора через подсистему "Инструменты разработчика".

14.04.2019    9893    tormozit    21    

Скрипты для проекта Снегопат: автоматизация работы в Конфигураторе Промо

Снегопат, openconf v8 1cv8.cf Россия Бесплатно (free)

Снегопат (http://snegopat.ru) – это проект по расширению возможностей конфигуратора 1С:Предприятия 8.2 как среды разработки прикладных решений. Для знакомых с ОпенКонфом, можно коротко сказать, что Снегопат – это ОпенКонф и Телепат, только для 1С:Предприятия 8.2 и уже на сегодня заметно круче :). Кроме специализированного функционала, который добавляется в Конфигуратор при использовании Снегопата, разработчики могут добавлять новый функционал самостоятельно, создавая свои собственные скрипты, автоматизирующие работу в Конфигураторе. Предлагаю вам обзор возможностей существующих на сегодня скриптов для Снегопата с короткими, но наглядными видеоиллюстрациями их работы.

16.01.2012    26886    kuntashov    34    

Как добавить типовую форму для СКД (для начинающих) (1С 8.3, управляемые формы)

Инструментарий разработчика Работа с интерфейсом v8 v8::УФ v8::СКД Бесплатно (free)

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

25.03.2019    13973    ellavs    9    

Расширение конструктора мобильного рабочего места для варианта "клиент 1С+RDP" (для любых wi-fi терминалов). Экосистема решений Simple WMS

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Универсальные функции Мобильная разработка Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8::УФ УУ Бесплатно (free)

Развитие проекта «Конструктор мобильного клиента на Android» https://infostart.ru/public/976636/ для устройств не на Андроиде (работающих в режиме RDP). В отличие от варианта Android работа на терминалах происходит в режиме 1С:Предприятие через RDP а конфигурации мобильных клиентов полностью совместимы для обоих версий. Т.е. конфигурация единая, создается один раз и ее может читать как Android -устройство, так и 1С-клиент на RDP без необходимости какой либо переделки.

05.02.2019    13224    informa1555    10    

Git + 1С. Часть 2. Реализация Git workflow в 1С-разработке по шагам

Инструментарий разработчика Управление проектом v8 1cv8.cf Бесплатно (free)

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

28.01.2019    18591    stas_ganiev    30    

Автоматизация тестирования с помощью WinAutomationUI

Инструментарий разработчика v8 Бесплатно (free)

Рассматривается использование инструмента WinAutomationUI для создания автоматизированных сценарных тестов на примере 1 + 1 = 2.

11.12.2018    7055    AlexKo    30    

[8.3] Анализ планов запросов (Управляемая консоль отчетов)

Консоль запросов v8 1cv8.cf Бесплатно (free)

Новый инструмент! Позволяет удобно работать с планами запросов, анализ планов в файловой базе.

19.11.2018    19703    Evg-Lylyk    6    

Метрики, графики, статистика = Prometheus + Grafana

Инструментарий разработчика v8 v8::ОУ Россия Бесплатно (free)

Снятие метрик из базы данных 1С с хранением в Phrometheus и красивое оформление на основе Grafana. Или как мы создавали комфортные условия административному персоналу на отдельно взятом складе.

23.10.2018    19800    freewms    75    

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

Инструментарий разработчика Управление проектом v8 1cv8.cf Бесплатно (free)

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    71448    stas_ganiev    75