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

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

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

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

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

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

Программировать нужно учиться, умея прежде всего думать, а не наоборот))
6. Danila-Master 103 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 2177 01.08.15 13:31 Сейчас в теме
(32) engineer74, судя по всему - не стоит ))
8. starik-2005 2177 22.06.15 10:16 Сейчас в теме
А вообще, я давно коллекционирую фобии разработчиков. Вот, пожалуйста, одна из них во всей красе. )))
10. Danila-Master 103 22.06.15 11:10 Сейчас в теме
(8) Вы не первый, кто поднимает подобную тему. Именно для этого и был создан п.64, который разъясняет политику ЛС.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

Хотя, конечно, это можно использовать везде. Только кто это будет покупать и тем более поддерживать. И рискованно выстраивать на таких конструкциях серьезный функционал. Большой риск что на следующей версии платформы это придется переписывать. Вот такой ответ без "не" ;)
24. starik-2005 2177 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 2177 31.07.15 16:03 Сейчас в теме
(26) nSpirit2, переписал партионку - оптимизировал запросы, реализовал стек партий для группового проведения; изменил механизм зачета авансов - добавил отрицательные суммы в реализациях товаров и услуг и возврате товаров от клиента, реализовал верное отражение данных на 62-м счету (без "бабочек"). Добился адекватной работы при регистрации документа в последовательности, реализовал в итоге приемлемое количество ожиданий на блокировках при многопоточном проведении (соответственно, и при одновременном проведении документов несколькими пользователями)..

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

Хм, обидчивый, а воспитание видимо запрещает. гы гы гы
29. starik-2005 2177 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 2177 31.07.15 14:05 Сейчас в теме
(23) nSpirit2, если у вас есть РИБ - это, конечно, нужно учитывать. Но лучше запустить скрипт для каждой из баз, чтобы не тащить туда миллионы записей.

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

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

См. также

Подсистема "Инструменты разработчика" v5.42 Промо

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

Интегрированный набор инструментов разработчика: - консоль кода - консоль запросов - консоль построителя отчетов - консоль компоновки данных - консоль заданий - конструктор запроса - справочник алгоритмов - исследователь объектов - интерфейсная панель - настройка журнала регистрации - анализ журнала регистрации - настройка техножурнала - анализ техножурнала - подбор и обработка объектов - редактор объекта БД - редактор констант - редактор параметров сеанса - редактор изменений по плану обмена - редактор пользователей - редактор предопределенных - редактор хранилищ настроек - динамический список - поиск дублей и замена ссылок - контекстная подсказка - синтакс-помощник - поиск битых ссылок - поиск ссылок на объект - структура хранения БД - удаление объектов с контролем ссылок - и прочее

23.09.2007    482228    4340    tormozit    2678    

Файл тестов для xUnitFor1C: тестирование проведения документов

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

Тестирование проведения документов. Проверяется, что: а) документ проводится; б) движения документа после перепроведения не изменились.

30.06.2020    1525    0    q_i    16    

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

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

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

11.06.2020    2964    0    doublesun    6    

Нейроконструктор

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

Изучайте нейронные сети и экспериментируйте вместе с расширением конфигурации "Нейроконструктор". Навыки программирования не требуются.

20.05.2020    5571    19    user1404129    18    

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

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

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

25.10.2017    22730    0    avk72    63    

Загрузка, редактирование и установка цветовых схем (раскраски кода) в Конфигуратор и EDT

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

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

14.05.2020    4047    43    CyberCerber    29    

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

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

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

02.05.2020    3556    0    pparshin    21    

Универсальные инструменты 1С

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

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

21.01.2020    21422    295    cprit    94    

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

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

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

20.05.2015    29897    0    dj_serega    18    

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

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

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

21.01.2020    3907    0    YuriYuriev    3    

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

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

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

09.01.2020    5619    0    YuriYuriev    31    

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

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

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

28.12.2019    5972    0    YuriYuriev    8    

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

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

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

09.02.2015    32413    0    boogie    21    

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

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

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

25.12.2019    10017    0    YuriYuriev    11    

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

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

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

23.12.2019    11470    0    TitanLuchs    23    

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

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

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

19.12.2019    9935    0    ivanov660    16    

Генерация кода управляемой формы (декомпиляция элементов) Промо

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

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

29.09.2014    100598    0    ekaruk    127    

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

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

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

13.11.2019    7429    0    user665435_al.windstorm    15    

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

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

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

28.10.2019    11868    0    stas_ganiev    16    

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

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

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

11.09.2019    6006    0    AKnyazkov    26    

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

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

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

26.06.2015    20044    0    Infactum    23    

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

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

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

10.09.2019    9328    0    m.bolsun    22    

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

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

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

23.08.2019    11450    0    ivanov660    24    

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

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

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

19.08.2019    4435    0    ranis888    13    

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

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

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

11.04.2015    76252    0    DitriX    297    

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

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

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

15.08.2019    20945    0    ellavs    105    

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

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

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

07.08.2019    10421    0    IvanAT1981    15    

Шаблон теста правил регистрации

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

Шаблон на базе, которого можно написать тест правил регистрации. Тесты запускаются с использованием инструмента xddTestRunner framework Vanessa-ADD.

26.07.2019    2031    0    milut    0    

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

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

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

13.08.2014    22171    0    m.bolsun    68    

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

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

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

17.07.2019    31505    0    ids79    27    

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

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

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

20.05.2019    19365    0    Evil Beaver    33    

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

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

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

13.05.2019    8894    0    Evg-Lylyk    10    

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

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

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

03.04.2014    25788    0    yuraos    2    

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

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

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

14.04.2019    9069    0    tormozit    18    

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

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

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

25.03.2019    12256    0    ellavs    9    

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

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

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

28.01.2019    16435    0    stas_ganiev    28    

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

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

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

07.06.2013    23720    0    m.bolsun    46    

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

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

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

11.12.2018    6659    0    AlexKo    30    

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

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

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

19.11.2018    18793    0    Evg-Lylyk    6    

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

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

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

23.10.2018    17088    0    freewms    75    

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

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

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

10.03.2013    33013    0    yuraos    3    

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

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

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

18.10.2018    61146    0    stas_ganiev    73    

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час

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

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

03.09.2018    42873    0    SergeyN    26    

Одновременное использование хранилища и расширений

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

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

23.08.2018    9633    0    shaa2    3    

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

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

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

31.03.2013    22255    0    yuraos    7    

Взгляд на практику разработки в EDT из зазеркалья

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

В данной статье расскажем о практическом опыте использования разработки в EDT: немного про интерфейс, командную разработку и GIT.

26.07.2018    23662    0    ivanov660    114    

Практика применения инструментов продвинутого разработчика 1С

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

Статья адресована разработчикам. Будет чуть-чуть теории, будут воспоминания, и потом пойдет практика.

23.07.2018    24966    0    artbear    24    

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

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

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

12.02.2012    19412    0    kuntashov    50    

Лайфхак: исходники внешних обработок и отчетов 1С - это просто.

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

Важно: статья далеко на любителя всяких таких git'ов, gitlab'ов и oscript'ов.

22.06.2018    10903    0    new_user    19    

Создание поставки конфигурации

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

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

27.02.2018    18567    0    Vladimir_412    7    

Групповая разработка конфигураций в крупном холдинге

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

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

15.08.2017    20887    0    stas_ganiev    15