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

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

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

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

9
В статье рассматривается инструкция 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.

9

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

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

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

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

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

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

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

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

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

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

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

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

по этому не рекомендую
zqzq; nSpirit2; Steelvan; +3 Ответить
19. starik-2005 1971 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 1971 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 1971 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 1971 31.07.15 16:03 Сейчас в теме
(26) nSpirit2, переписал партионку - оптимизировал запросы, реализовал стек партий для группового проведения; изменил механизм зачета авансов - добавил отрицательные суммы в реализациях товаров и услуг и возврате товаров от клиента, реализовал верное отражение данных на 62-м счету (без "бабочек"). Добился адекватной работы при регистрации документа в последовательности, реализовал в итоге приемлемое количество ожиданий на блокировках при многопоточном проведении (соответственно, и при одновременном проведении документов несколькими пользователями)..

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

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

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

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

См. также

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

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

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

28.10.2019    3880    stas_ganiev    15       

FastCode - сервис поиска кода 1С 50

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

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

10.09.2019    5312    m.bolsun    22       

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

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

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

23.08.2019    5775    ivanov660    21       

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

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

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

15.08.2019    8659    ellavs    77       

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

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

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

17.07.2019    10406    ids79    24       

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

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

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

13.05.2019    3909    Evg-Lylyk    10       

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

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

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

14.04.2019    5373    tormozit    18       

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

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

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

25.03.2019    5981    ellavs    9       

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

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

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

28.01.2019    10420    stas_ganiev    18       

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

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

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

11.12.2018    4171    AlexKo    30       

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

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

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

19.11.2018    14512    Evg-Lylyk    6       

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

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

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

23.10.2018    10182    197    freewms    64       

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

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

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

18.10.2018    36290    stas_ganiev    72       

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

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

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

26.07.2018    18058    ivanov660    104       

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

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

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

23.07.2018    20172    artbear    22       

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

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

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

22.06.2018    7913    new_user    11       

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

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

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

27.02.2018    13878    Vladimir_412    6       

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

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

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

25.10.2017    18967    avk72    63       

Консоль запросов для УФ с возможностью передачи готовой ТЗ в качестве параметра 15

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

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

11.07.2016    12723    vadim1011985    7       

Поиск несериализуемых значений при помещении в хранилище 12

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

В статье разобран пример, как найти несериализуемые значения в случае помещения в хранилище коллекций, содержащих вложенные элементы. В качестве хранилищ рассмотрены временное хранилище значений и переменные типа ХранилищеЗначения.

02.03.2016    20504    balanton    2       

Подсветка синтаксиса 1С в текстовых редакторах Atom, Sublime Text, VS Code 101

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

Пакеты, добавляющие поддержку синтаксиса языка 1С:Предприятие 8 в текстовые редакторы Atom, Sublime Text и VS Code. И не только.

02.02.2016    23123    nixel    38       

Дай дернуть! О веб-сервисах, Linux'ах и добрых поисковых сайтах 61

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

О веб-сервисах, апачах и *nix'ах. - установим на новенький убунту старенький апач с php. - дернем сервис из php-скрипта. - создадим приложение, позволяющее дергать произвольный сервис с произвольными данными. - ну и что там получится по пути в лес...

30.12.2015    22865    starik-2005    4       

xUnitFor1C - набор инструментов для выполнения тестирования (модульного/юнит, приемочного, сценарного для 1С 8.3, интеграционного) в 1С:Предприятии 8 178

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

xUnitFor1C - простой и мощный фреймворк для тестирования в 1С. Позволяет тестировать в разных режимах обычное приложение, тонкий и толстый клиент управляемого приложения. Поддерживаются любые платформы 1С - от 8.2.17 до 8.3.5 и выше. Любые наборы тестов могут прогоняться в полностью автоматическом режиме. Автозапуск используется в различных build-серверах в системах Continuous Integration. Также возможно очень простое создание тестовых данных на основании табличных макетов. Эти макеты можно генерировать из реальных боевых данных. Полученные данные в тестах загружаются одной строкой кода. В статье я кратко описал историю продукта + вставил небольшое описание различных возможностей нашего фреймворка + список полезных статей/примеров/видео, обучающих/рассказывающих о практическом применении инструмента

13.11.2015    37880    artbear    45       

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

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

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

26.06.2015    18040    Infactum    23       

Многопоточность в 1С, клиент-серверный вариант 60

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

Многопоточность - это свойство системы выполнять одновременно более одной операции (в пределе - более одной программы), позволяя в ряде случаев добиться существенного роста производительности программного продукта...

21.06.2015    30747    starik-2005    50       

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

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

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

20.05.2015    26997    dj_serega    18       

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

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

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

11.04.2015    71366    DitriX    297       

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

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

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

09.02.2015    28711    boogie    21       

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

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Бесплатно (free) Инструментарий разработчика Практика программирования Работа с интерфейсом

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

29.09.2014    93265    8967    ekaruk    123       

Типовой механизм упрощенного изменения конфигурации в ERP 2.0 и УТ 11 212

Статья Системный администратор Программист Нет файла v8 УТ10 ERP2 Windows Бесплатно (free) Инструментарий разработчика Практика программирования Работа с интерфейсом

В ERP 2.0 (и соответственно в УТ 11) появился функционал для упрощенной возможности модификации конфигурации разработчиками. Он касается в частности изменения форм объектов и размещения подписок на элементы, теперь задача изменения конфигурации на поддержке упростилась. Также появились дополнительные возможности в новой версии платформы 8.3.5, которые также упростят задчу.

22.09.2014    50281    ivanov660    49       

Просмотр SQL-таблиц из 1С. Возможность очистки таблиц 26

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Бесплатно (free) Инструментарий разработчика

Обработка позволяет соединиться с SQL-сервером (SQL-авторизация), получить список баз на сервере, после выбора базы - получить список таблиц. Позволяет вывести таблицу на просмотр, при необходимости очистить таблицу средствами SQL (delete from), просмотреть соответствие имен таблиц объектам конфигурации, в которой запущена база

29.08.2014    18887    377    Abadonna    4       

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

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

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

13.08.2014    20093    m.bolsun    68       

Консоль запросов. Очередная гайка. 18

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

Небольшое дополнение к консоли запросов. Позволяет создавать функцию вместе с текстом запроса.

23.07.2014    6637    mdmdvd    3       

Конвертер юникода в кириллицу 8

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

Как преобразовать строку на юникоде в строку на кириллице, например, вот это: "/u042E/u043D/u0438/u043A/u043E/u0434" в это: "Юникод"

25.04.2014    10018    Mart    1       

Сохранение в Excel из WEB-клиента 13

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

Не всегда корректно отрабатывает сохранение в Excel из 1C при работе в WEB-клиенте. Мне попалась ситуация, когда не отрабатывал код "ТабличныйДокумент.Записать(...)" и выдавалась ошибка "неизвестная ошибка.: object doesn't support this property or method" Ниже предложена процедура сохранения в Excel, корректно работающая во всех типах подключения.

24.04.2014    18629    Tavalik    1       

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

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

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

03.04.2014    23700    yuraos    2       

Автоматизированное тестирование в 8.3 163

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

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

06.03.2014    55016    M.Shalimov    45       

Изменение данных среды выполнения «на лету» в процессе отладки с помощью внешней обработки 9

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

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

13.02.2014    8033    Рэйв    7       

Перенос таблицы значений между клиентом и сервером 50

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

Всем привет. Бывают такие моменты, когда необходимо таблицу значений передать с сервера на клиент, увы, Мутабельные значения и т.д. В тоже время есть возможность перекидывать все это добро через Хранилище, чем собственно разработчики часто пользуются. Но сегодня я бы хотел вынести на Вашу критику вот такой пример переноса. Сильно не пинайте.

10.12.2013    77797    Draconus    35       

Native ВК для 1CV8: независимое чтение файлов *.xls и *.xlsx 152

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

Не требует установленного в системе Microsoft Office (Excel) и Open Office. Технология Native, не требует регистрации в реестре

15.08.2013    28689    383    Abadonna    161       

Свойства файла (версия, ширина/высота изображения и т.д.) 6

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

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

29.07.2013    10985    zsrg    1       

V8 FORMATTER: Расширенная версия 78

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Windows Бесплатно (free) Инструментарий разработчика

Форматирование кода модуля одним хот-кеем, ввод "неудобных" символов без переключения раскладки.

22.07.2013    17830    190    Abadonna    124       

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

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

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

07.06.2013    21923    m.bolsun    46       

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

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

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

31.03.2013    20409    yuraos    7