ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар")

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

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

105
Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

Идея в общем-то простая. В чистом SQL есть запросы типа INSERT, UPDATE, DELETE. А в языке запросов 1С таких запросов нет. Ну вернее не было ) Вашему вниманию предлагается расширение языка запросов, которое предоставляет возможность писать запросы типа ИЗМЕНИТЬ, УДАЛИТЬ и ВСТАВИТЬ. Для скачивания доступна консоль запросов, реализующая это расширение (так же работает и обычный ВЫБРАТЬ). Запросы могут быть например, такие:

|ИЗМЕНИТЬ Справочник.Номенклатура
|УСТАНОВИТЬ ЕдиницаИзмерения = &МояЕдиница, Наименование = НаименованиеПолное
|ГДЕ ВидНоменклатуры = &МойВид
|;
|УДАЛИТЬ ИЗ Справочник.Номенклатура
|ГДЕ ВидНоменклатуры = &МойВид
|;
|ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование, ВидНоменклатуры)
|Значения (68549, &НаименованиеНовых, &МойВид)

Работает все это исключительно в рамках встроенного языка платформы и ни в какие внешние среды (типа прямого доступа к SQL) не лезет. Фразы ИЗМЕНИТЬ, УСТАНОВИТЬ, УДАЛИТЬ ИЗ и ВСТАВИТЬ В для языка запросов новые. Все остальное (ВЫБРАТЬ, ГДЕ, ПОМЕСТИТЬ и т.п.) подчиняется тем же правилам, что и в "обычном" запросе, т.е. эти части запроса могут быть сколь угодно сложными: включать вложенные запросы, формироваться временные таблицы и так далее. Поддерживается редактирование всех первичных таблиц:

  • таблицы ссылочных типов (документов, справочников...)
  • табличные части ссылочных типов
  • регистры подчиненные и не подчиненные регистратору

Если интересно подробнее - есть длинный и занудный текст о том как это работает.

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

Последние изменения:

  • добавлена поддержка запроса ВСТАВИТЬ
  • изменен пользовательский интерфейс:основное место теперь отведено тексту запроса, а результат запроса можно развернуть на полный экран
  • добавлено редактирование параметров запроса табличного типа, т.е. теперь исходные данные для запроса на изменение можно вводить в Excel-стиле (в табличный документ)

Платформа 8.3.9.2233. Навскидку, единственное, что мешает даунгрейду до 8.2 - процедуры типа СтрСоединить, если их дописать - все должно заработать. Код полностью открыт, запароленных и/или обфусцированных участков нет. Удачи!

105

Скачать файлы

Наименование Файл Версия Размер
Консоль расширенных запросов
.epf 21,74Kb
14.08.18
52
.epf 1.2 21,74Kb 52 Скачать

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

Лучшие комментарии
6. uri1978 126 01.06.18 18:04 Сейчас в теме
С нетерпением ждем DROP TABLE, CREATE TABLE, ALTER TABLE и особенно DROP DATABASE
TanyTany; Jeka44; kuzyara; LosevI; Светлый ум; Cerberus1; sleemp; Itilive.ru; Daynestro07; A_Max; SShipilov; DimaShapovaloff; Drivingblind; Berckk; Hobbit_Jedi; Denanhel; EasyWay; YaroslavHolovatiy; adhocprog; Patrio_O_Muerte; Sla; papche; Sartinsky; nickpugachev; wowik; zarucheisky; Yakud3a; chebser; awk; sevod; Kinestetik; lunjio; корум; suarez55; veyron21; babys; creatermc; and03122008@gmail.com; Gang031; cleaner_it; al_zzz; sCHTASS; IssakN; Gluk_1C; dabu-dabu; Serj1C; user612295_death4321; Dozkni; allgorhythm; DrAku1a; check2; +51 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. vasilev2015 1506 01.06.18 10:19 Сейчас в теме
Перед исполнением запроса таблицы блокируются также, как бы это сделала СУБД ?
2. m-rv 794 01.06.18 10:52 Сейчас в теме
(1) никаких специальных блокировок не накладывается, но цикл изменений происходит в одной транзакции.
3. t.v.s. 92 01.06.18 12:44 Сейчас в теме
Идея отличнейшая!
Для полного счастья не хватает конструкции
ВСТАВИТЬ [ИЛИ ИЗМЕНИТЬ] <Имя таблицы> ВЫБРАТЬ ИЗ...
4. m-rv 794 01.06.18 13:35 Сейчас в теме
(3) Запрос ВСТАВИТЬ (INSERT) ожидается, следите за обновлениями
5. vano-ekt 527 01.06.18 17:43 Сейчас в теме
6. uri1978 126 01.06.18 18:04 Сейчас в теме
С нетерпением ждем DROP TABLE, CREATE TABLE, ALTER TABLE и особенно DROP DATABASE
TanyTany; Jeka44; kuzyara; LosevI; Светлый ум; Cerberus1; sleemp; Itilive.ru; Daynestro07; A_Max; SShipilov; DimaShapovaloff; Drivingblind; Berckk; Hobbit_Jedi; Denanhel; EasyWay; YaroslavHolovatiy; adhocprog; Patrio_O_Muerte; Sla; papche; Sartinsky; nickpugachev; wowik; zarucheisky; Yakud3a; chebser; awk; sevod; Kinestetik; lunjio; корум; suarez55; veyron21; babys; creatermc; and03122008@gmail.com; Gang031; cleaner_it; al_zzz; sCHTASS; IssakN; Gluk_1C; dabu-dabu; Serj1C; user612295_death4321; Dozkni; allgorhythm; DrAku1a; check2; +51 Ответить
10. kote 501 02.06.18 19:47 Сейчас в теме
(6) это невозможно по определению - объекты и регистры создаются исключительно только через конфигуратор..
11. baton_pk 397 02.06.18 20:12 Сейчас в теме
(10)
это невозможно по определению

не, ну... выгрузить конфу в файлы, поменять/добавить/удалить, загрузить обратно и обновить.
13. kote 501 02.06.18 20:21 Сейчас в теме
(11) потом выгнать всех пользователей, применить изменения, загнать всех обратно.. и обязательно не забыть на каком месте остановились, чтоб с этого же места продолжить.
14. baton_pk 397 02.06.18 21:37 Сейчас в теме
(13) ну да. для этого ещё пара другая обработок. :)
41. zarucheisky 22.08.18 13:54 Сейчас в теме
7. Dream_kz 95 01.06.18 19:31 Сейчас в теме
1С-никам не просто так запретили запросы на запись)
user774630; wowik; Hobbit_Jedi; adhocprog; shushik; monkbest; kadild; user700035_6550355; shard; abadonna83; Gluk_1C; user612295_death4321; GROOVY; DrAku1a; akor77; +15 Ответить
12. baton_pk 397 02.06.18 20:13 Сейчас в теме
Идея - огонь! Сам ночами просыпался с мыслью сделать подобное!
16. German_Tagil 7 08.06.18 05:53 Сейчас в теме
конфигурация КА 1.1 - не запустилось
18. m-rv 794 08.06.18 07:45 Сейчас в теме
(16) уж не обычные ли это формы?
17. German_Tagil 7 08.06.18 05:57 Сейчас в теме
19. German_Tagil 7 08.06.18 07:45 Сейчас в теме
пишу самый простой запрос

изменить Документ.ЗаказПоставщику.Товары
УСТАНОВИТЬ Проект = &ПроектН
где Проект = &Проект


вылетает по ошибке
20. m-rv 794 08.06.18 07:48 Сейчас в теме
21. German_Tagil 7 08.06.18 07:50 Сейчас в теме
формы обычные запускаю из конфигуратора управляемое приложение
простой запрос
типа
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
ЗаказПоставщикуТовары.Номенклатура,
ЗаказПоставщикуТовары.Количество,
ЗаказПоставщикуТовары.Заявка,
ЗаказПоставщикуТовары.Проект
ИЗ
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
ЗаказПоставщикуТовары.Проект = &Проект
отрабатывает нормально
22. German_Tagil 7 08.06.18 07:50 Сейчас в теме
23. German_Tagil 7 08.06.18 07:54 Сейчас в теме
1CV8.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.
24. m-rv 794 08.06.18 07:56 Сейчас в теме
(23) это что-то совсем страшное. а какая платформа?
25. German_Tagil 7 08.06.18 08:02 Сейчас в теме
причем простой запрос
на изменение реквизитов документа работает

1С:Предприятие 8.2 (8.2.19.90)
27. m-rv 794 08.06.18 08:19 Сейчас в теме
(25) единственное что приходит в голову - начать построчную отладку и понять от какой конкретно инструкции платформа крашится.
26. German_Tagil 7 08.06.18 08:14 Сейчас в теме
у меня как раз задачка достаточно простая есть под данную консоль
28. German_Tagil 7 08.06.18 08:34 Сейчас в теме
может от того что с функциями что-то намудрил


Функция СтрНайти (ИсходнаяСтрока, ИскомаяСтрока, НаправлениеПоиска = "СНачала", НачальнаяПозиция = Неопределено, НомерВхождения = 1) Экспорт
    Если СтрДлина(ИскомаяСтрока)>СтрДлина(ИсходнаяСтрока) ИЛИ СтрДлина(ИсходнаяСтрока) = 0 Тогда
        Возврат 0;
    КонецЕсли;    
    Если НаправлениеПоиска = "СНачала" ИЛИ НаправлениеПоиска = Неопределено Тогда
        Если НачальнаяПозиция = Неопределено Тогда
            НачальнаяПозиция = 1;
        ИначеЕсли НачальнаяПозиция > СтрДлина(ИсходнаяСтрока) Тогда
            ВызватьИсключение ("Неправильный параметр: Начальная позиция");
        КонецЕсли;
        //Выполнить Поиск
        Результат = 0;
        ВременнаяСтрока = Прав(ИсходнаяСтрока, СтрДлина(ИсходнаяСтрока)-(НачальнаяПозиция-1));
        Для Индекс = 1 По НомерВхождения Цикл
             ВременныйРезультат = Найти(ВременнаяСтрока, ИскомаяСтрока);
             Если ВременныйРезультат Тогда
                 Результат = Результат  + ВременныйРезультат ;
                ВременнаяСтрока = Прав(ВременнаяСтрока, (СтрДлина(ВременнаяСтрока) - ВременныйРезультат - (СтрДлина(ИскомаяСтрока)-1)));
                //Сообщить ("Вхождение " + Индекс + ": " + (Результат));
            Иначе
                //Сообщить("Требуемое вхождение не найдено");
                  Возврат 0;
            КонецЕсли;            
            Если Индекс < НомерВхождения Тогда
                Результат = Результат + СтрДлина(ИскомаяСтрока)-1;
            КонецЕсли;
        КонецЦикла;
        Возврат Результат+НачальнаяПозиция-1;    
    ИначеЕсли НаправлениеПоиска = "СКонца" Тогда //Ищем с конца
        Если НачальнаяПозиция = Неопределено Тогда
            НачальнаяПозиция = СтрДлина(ИсходнаяСтрока);
        ИначеЕсли НачальнаяПозиция > СтрДлина(ИсходнаяСтрока) ИЛИ НачальнаяПозиция < 1 Тогда
            ВызватьИсключение("Неправильный параметр: НачальнаяПозиция");            
        КонецЕсли;
        //ВыполнитьПоиск
        Результат = 0; 
        ВременнаяСтрока =  Лев(ИсходнаяСтрока, НачальнаяПозиция +1); 
        Вхождения = Новый Массив;
        Пока Истина Цикл
            ВременныйРезультат = Найти(ВременнаяСтрока, ИскомаяСтрока);
             Если ВременныйРезультат Тогда
                 Результат = Результат  + ВременныйРезультат;
                Вхождения.Добавить(Результат);
                ВременнаяСтрока = Прав(ВременнаяСтрока, (СтрДлина(ВременнаяСтрока) - ВременныйРезультат - (СтрДлина(ИскомаяСтрока)-1)));
                //Сообщить ("Вхождение " + Индекс + ": " + (Результат));
                Результат = Результат + СтрДлина(ИскомаяСтрока)-1;
            Иначе
                //Сообщить("Требуемое вхождение не найдено");
                  Прервать;
            КонецЕсли;                    
        КонецЦикла;
        Если Вхождения.Количество()<НомерВхождения Тогда
            //Вхождение не найдено
            Возврат 0;
        Иначе
            Возврат Вхождения[(Вхождения.Количество()-НомерВхождения)]
        КонецЕсли;        
    Иначе
        ВызватьИсключение("Неправильный параметр: НаправлениеПоиска. Опции: ""СНачала"", ""СКонца""");
    КонецЕсли;        
КонецФункции

Функция СтрНачинаетсяС(Знач Строка, Знач СтрокаПоиска)
 
    если Найти(Строка, СтрокаПоиска)=1 тогда 
		Возврат Истина;
	иначе 
		Возврат Ложь;
	конецесли;	
		
		
    КонецФункции   

	
	Функция СтрЗаканчиваетсяНа (Знач Строка, Знач СтрокаПоиска)
 
    если Найти(Строка, СтрокаПоиска)=1 тогда 
		Возврат Истина;
	иначе 
		Возврат Ложь;
	конецесли;	
		
		
    КонецФункции   

	
	
	Функция СтрСоединить(Массив, Разделитель="")
    Строка = "";
    Для каждого Элемент Из Массив Цикл
        Строка = Строка + СокрЛП(Элемент) + Разделитель;
    КонецЦикла;
    
    Возврат Строка;
КонецФункции
	
	


Функция стрРазделить(Знач Строка, Знач Разделитель = ",",
    Знач ПропускатьПустыеСтроки = Неопределено)
 
    Результат = Новый Массив;
 
    // для обеспечения обратной совместимости
    Если ПропускатьПустыеСтроки = Неопределено Тогда
        ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
        Если ПустаяСтрока(Строка) Тогда 
            Если Разделитель = " " Тогда
                Результат.Добавить("");
            КонецЕсли;
            Возврат Результат;
        КонецЕсли;
    КонецЕсли;
    //
 
    Позиция = Найти(Строка, Разделитель);
    Пока Позиция > 0 Цикл
        Подстрока = Лев(Строка, Позиция - 1);
        Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
            Результат.Добавить(Подстрока);
        КонецЕсли;
        Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
        Позиция = Найти(Строка, Разделитель);
    КонецЦикла;
 
    Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда
        Результат.Добавить(Строка);
    КонецЕсли;
 
    Возврат Результат;
 
КонецФункции
Показать
29. German_Tagil 7 08.06.18 08:41 Сейчас в теме
Функция СтрЗаканчиваетсяНа не нашел
30. m-rv 794 08.06.18 08:48 Сейчас в теме
(29) это функции 8.3, в 8.2 их нет. недавно выкладывали их реализацию для подобных случаев.
31. German_Tagil 7 08.06.18 09:20 Сейчас в теме
неправильно сформулировал извиняюсь - я понял что эти функции для 8.3
а ссылку можете указать? подправлю - может взлетит
32. German_Tagil 7 08.06.18 10:10 Сейчас в теме
Функция ВыполнитьПакет(РасширенныйЗапрос) Экспорт

ИнициализироватьПараметрыРасширенногоЗапроса(РасширенныйЗапрос, Ложь);

Запрос = ИнициализироватьЗапросПолученияДанных(РасширенныйЗапрос);

МассивРезультатов = Запрос.ВыполнитьПакет();

ВыполнитьИзменениеДанных(РасширенныйЗапрос, МассивРезультатов);

Возврат МассивРезультатов;

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

На ВыполнитьИзменениеДанных выносит
33. German_Tagil 7 08.06.18 11:19 Сейчас в теме
посмотрел отладчиком
ОбъектРедактирования.Записать();

на этом ее и выносит
34. German_Tagil 7 09.06.18 05:59 Сейчас в теме
функции СтрНайти,стрРазделить,СтрСоединить,СтрЗаканчиваетсяНа,СтрНачинаетсяС
проверил в ка 2.4 - рабочие

не вылетает
35. m-rv 794 09.06.18 07:58 Сейчас в теме
(34)
ошибка на строке
ОбъектРедактирования.Записать();
говорит о том, что проблема с записью самого объекта, при чем характер ошибки намекает на ее платформенную природу. попробуйде провалиться в обработчики/подписки перед/при записи.
36. German_Tagil 7 09.06.18 09:09 Сейчас в теме
в общем похоже у меня база тестовая с ошибками была
на другой заработало
37. Necytij 11.07.18 07:48 Сейчас в теме
Я так понимаю эта красота скорости не добавляет, и сделана сугубо чтобы "скоротать вечерок" и по несколько минут на каждое МАССОВОЕ изменение реквизитов, которое по какой-то причине групповой обработкой править не получается. Честно говоря вообще тяжеловато понять суть тогда зачем в принципе такая вещь, если большую часть всего этого можно было сделать стандартными обработками чем извращаться создавая запрос через конструктор, потом менять текст вручную и программно парсить его обратно... Команду инсерт на 1 объект в итоге писать+запускать дольше чем просто открыть в режиме в 1С и создать вручную, нет?
Лучше бы изменяемую схему СКД + групповое изменение, насколько помню уже давно есть такие консоли.
38. m-rv 794 11.07.18 09:39 Сейчас в теме
(37) вы знаете, у меня всегда подобные комментарии вызывают ассоциации типа "зачем нужен белый хлеб, если есть черный?", "зачем придумывать ауди, когда уже есть мерседес?".
это альтернативный инструмент. смотришь, сравниваешь, выбираешь какой подходит в твоей ситуации. в моем понимании, основными (но не факт что единственными) плюсами запроса на изменение является его предельная простота в сравнении с "наколеночной" обработкой и крайне широкие возможности в сравнении с обработкой группового изменения данных.
соответственно, аналитики и консультанты теперь имеют альтернативный инструмент массового изменения данных. да и программисту по-короче набросать две строчки запроса, чем писать "запрос = новый запрос();...".
40. Necytij 11.07.18 19:32 Сейчас в теме
(38) Я свои ассоциации называть не буду. Но про хлеб - "на вкус и цвет", про Ауди - хотя бы разница в цене тут цена производительности таже, цена программирования очень спорна. Примеры, мне кажется, не подходят.
Я и спрашиваю преимущества в чем? В том, что есть люди которым удобнее писать запрос вручную наизусть зная структуру имен полей? Чем перетащить из таблички? И по вашему ответу тоже не вижу ни одного реального примера. Представите хоть один реальный, значимый?
Чем кстати этот инструмент шире по сравнению с хорошей групповой обработкой?

"да и программисту по-короче набросать две строчки запроса", я тоже могу придираться к словам, а не вычленять их смысл. Запрос написанный в 2 стандартных коротких строчки запроса не задача для написания такого инструмента и даже изучения такого инструмента не стоит, имхо.
39. m-rv 794 11.07.18 09:42 Сейчас в теме
(37) да, и что касается
извращаться создавая запрос через конструктор, потом менять текст вручную

так извращаться действительно нет смысла. если вы не можете набросать запрос без конструктора - переходить к запросам на изменение рановато..
user774630; starik-2005; +2 Ответить
42. echo77 1100 22.08.18 20:36 Сейчас в теме
(0) Зачем это может пригодится? Можете привести жизненный пример?
44. Casey1984 3 27.08.18 08:42 Сейчас в теме
(42) Ого, только сегодня заметил эту разработку! Читаю это:

"Поддерживается редактирование всех первичных таблиц:

таблицы ссылочных типов (документов, справочников...)
табличные части ссылочных типов
регистры подчиненные и не подчиненные регистратору"

и вспоминаю, что иногда возникают задачи больших корректировок регистров, приходится делать обработку, которая формирует набор(ы) записей регистров, на основании существующей в ИБ информации, и привязывает их к "ручной операции/корректировке". Попробую делать это в запросе, не открывая конфигуратора, вдруг будет удобнее. Получается более универсальный инструмент чем типовая обработка изменения реквизитов - может менять ещё и регистры.
43. maxx 830 23.08.18 10:23 Сейчас в теме
Прикольно, мне кажется полезным может оказаться Веберам, которые с 1с приходится сталкиваться немного типа Номенклатуры или Контрагентов, а они знают чистый SQL
45. Patrio_O_Muerte 28.08.18 12:24 Сейчас в теме
Руки оторвать за реализацию.
46. m-rv 794 28.08.18 13:43 Сейчас в теме
47. Patrio_O_Muerte 28.08.18 13:54 Сейчас в теме
Представьте сколько программистов с невысоким уровнем квалификации начнет использовать эту обработку.
Конечно идея хорошая, но к таким вещам необходимо ограничивать доступ.
Фирма 1С сколько ее не ругай сделала очень грамотный ход - она просто отказалась от реализации подобных возможностей из режима предприятия.
48. m-rv 794 28.08.18 15:08 Сейчас в теме
(47) здесь, кстати, не в первый раз упоминают о том, что вот есть какие-то "Программисты 1С", которые щас все это возьмут и как начнут все портить!!!
если серьезно, без шуток и ёрничания: в чем опасность? почему плохо, что такой инструмент будет у всех?
49. m-rv 794 28.08.18 15:09 Сейчас в теме
(47) и согласитесь, пока сюда не начнет постить комментарии Сергей Георгиевич - о мотивах фирмы 1С мы ничего не узнаем.
50. Darklight 20 28.08.18 17:02 Сейчас в теме
Вещь вполне интересная. Я буду в лагере тех, кто за такое и кто ждёт такого в будущих редакциях 1С: Предприятия уже во встроенном в платформу виде (но, конечно же, с уже оптимизацией проведение операций массовых изменений в данных - это очень был бы вотребовано на проектах с BIG DATA)! А кто говорит, что правильно, что 1С не добавила - обоснуйте в чём правильность-то, на мой взгляд они просто поленились.
51. m-rv 794 29.08.18 07:56 Сейчас в теме
(50) с оптимизацией будут большие проблемы: если запрос ИЗМЕНИТЬ транслировать напрямую в UPDATE - выпадет целая область функциональности слоя платформы (подписки, события объекта, регистрация на планах обмена...). Хотя, может быть, можно что-то придумать, типа множественного аргумента в подписке как в команде...
52. Darklight 20 29.08.18 10:12 Сейчас в теме
(51)Я согласен - оптимизировать сложно - это уже архитектурная задача для будущих редакций 1С Предприятие (скорее всего уже 9-го поколения, где, на мой взгляд, уже архитектурно должна быть заложена обработка не одиночных данных - а целых наборов (причём с предположением, что они могут быть очень большими) - во всех местах алгоритмов, в т.ч. в параллельном режиме). Это очень важный шаг на пути расширения облачных технологий и BIG DATA - это тренды начала XXI века.
53. IsiKosta 721 14.06.19 13:07 Сейчас в теме
А если помечать на удаление, например "Справочник.Договоры", то процедура "ПередЗаписью" будет отрабатываться ?
54. m-rv 794 16.06.19 13:11 Сейчас в теме
55. muskul 08.07.19 08:21 Сейчас в теме
Зачем все хотят запросы на данные? что вы такого в таблицы пытаетесь записать.
56. acanta 79 08.07.19 08:36 Сейчас в теме
(55) это назы́вается назло маме отморожу уши. Ответственные пользователи и руководство за то, чтобы ни программист ни разработчик ни сисадмин не имели к данным никакого доступа.
По крайней мере к реальным.
Любые обработки в массивах рекомендуется исключить или хотя бы свести к минимуму.
Программа должна предусматривать безопасную работу пользователей без вмешательства программиста. Это все относится к обычному режиму.
Но если это хайлоад, то все меняется на прямо противоположные требования, и момент, когда все уже ...устали может наступить без квалифицированного программиста, владеющего необходимыми навыками.
57. m-rv 794 08.07.19 10:45 Сейчас в теме
(55) это позволяет удобнее манипулировать данными в некоторых ситуациях. Не в коде писать, а в пользовательской консоли, когда надо подправить данных на внедрении или типа того..
58. muskul 08.07.19 10:46 Сейчас в теме
(57) Приведите пример такой правки. Вот что напрямую легче.
59. m-rv 794 08.07.19 11:43 Сейчас в теме
(58) ну заливали данные в новую базу, продолбали ИспользованиеХарактеристик у номенклатуры. Решение в консоли:
ИЗМЕНИТЬ Справочник.Номенклатура
УСТАНОВИТЬ ИспользованиеХарактеристик = ВидНоменклатуры.ИспользованиеХарактеристик
ГДЕ НЕ ИспользованиеХарактеристик = ВидНоменклатуры.ИспользованиеХарактеристик
процедурным языком будет существенно дольше с точки зрения разработки. запись, понятно, будет длиться одинаковое количество времени.
60. muskul 09.07.19 02:31 Сейчас в теме
(59)Кароче вы предлагаете костыль который будет использоваться менее 1% (кто умеет правильно все это написать и вставить в таблице) в менее 1% реальных задач
Оставьте свое сообщение

См. также

Полезные процедуры и функции для программиста 161

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

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

1 стартмани

07.10.2019    12772    HostHost    23       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Описание формата внутреннего представления данных 1С в контексте обмена данными 154

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных Разработка

Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на "внутреннюю кухню" платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм "быстрого массива", который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно "на лету" программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

1 стартмани

06.09.2019    6972    6    Dementor    27       

Вам нравятся запросы в 1С? 14

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования Разработка

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    11478    1    m-rv    79       

Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо

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

7500 рублей

1С:Ассемблер. Немного летнего веселья! 314

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Разработка

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

1 стартмани

21.06.2019    16096    50    Evil Beaver    116       

Простые примеры сложных отчетов на СКД 271

Статья Программист Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

Подписи в отчете. Особенности соединения наборов: как соединить несоединяемое. Остатки на дату и обороты по месяцам в одном отчете. Курс валюты на каждую дату без группировок и соединений в запросе. Отчет с произвольными колонками и с произвольной последовательностью. "Неадекватный отчет".

1 стартмани

12.06.2019    15929    12    Hatson    22       

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

Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!

29700 руб.

Безопасная работа с транзакциями во встроенном языке 190

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

1 стартмани

25.03.2019    17902    8    tormozit    44       

Баг или фича? Неожиданное поведение платформы 172

Статья Системный администратор Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Тестирование и исправление Разработка

Рассмотрим несколько случаев неожиданного поведения платформы 1С, а также что с этим можно cделать.

18.02.2019    14030    32    YPermitin    88       

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

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

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 563

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    31505    283    bonv    117       

HTML в новой версии 8.3.14 на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX 172

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные обработки Практика программирования Разработка

Тестируем возможности HTML в новой версии 8.3.14 платформы на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX.

1 стартмани

29.01.2019    16069    66    Synoecium    37       

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.127.х! Промо

Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.

24700 руб.

Отладка сложных отчетов на СКД 140

Отчеты и формы Программист Расширение (cfe) v8 v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

Расширение для отладки сложных отчетов на СКД (в т.ч. для собираемых программно "на лету") и быстрого перехода к отладке таких отчетов в консоли запросов и отчетов на СКД.

1 стартмани

28.12.2018    15857    61    maxx    56       

Реализация простого http-сервиса "Просмотр карточки номенклатуры(товара) в браузере" 144

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Практический пример реализации простого http-сервиса средствами 1С Предприятие 8.3. Обеспечивает просмотр списка товаров и просмотр данных товара в браузере.

1 стартмани

07.12.2018    14928    10    dmitry1975    31       

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

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

Использование подсистемы БСП "Заполнение объектов" 135

Статья Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Россия Абонемент ($m) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

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

1 стартмани

23.11.2018    15237    8    ids79    22       

Работа с публикациями "Инфостарт" 14

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    10833    10    RocKeR_13    16       

Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо

Семинар по регулярному менеджменту от Александра Фридмана для собственников, первых лиц и топов. Технология управленческого планирования, комплексного управления временем и другими ресурсами, выполнением поручений, делами, информацией, контактами (встречи-звонки-почта).

от 11000 до 29000 рублей

HTTP Сервисы: Путь к своему сервису. Часть 3 138

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Практика программирования

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    18624    32    dsdred    13       

Из Excel в 1С запросом 33

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

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

14.08.2018    15481    m-rv    5       

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

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

4500/9500 рублей

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 65

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    17488    23    informa1555    26       

Работа с данными выбора 41

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    24581    14    kalyaka    15       

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

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

HTTP Сервисы: Путь к своему сервису. Часть 1 287

Статья Системный администратор Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Практика программирования WEB

Уже много было написано про http-сервисы, но то и дело всплывают «Новые» статьи по обмену между базами V8 по COM, что «Немножко» удивляет. Решил внести свои 5 копеек, поработаем с http-сервисом.

1 стартмани

15.07.2018    43508    17    dsdred    22       

Как сделать запрос на изменение данных 75

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

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    23422    m-rv    21       

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

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

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному 242

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования БСП (Библиотека стандартных подсистем)

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    29741    28    dsdred    34       

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

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

19700 руб.

Как выполнить отчет на СКД через COM и получить данные отчета? 86

Статья Программист Архив с данными v8 УПП1 Россия Windows Абонемент ($m) Практика программирования

Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, "скопипастить" текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его "немного модифицированная" копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

2 стартмани

08.05.2018    19192    10    wowik    3       

Работа со схемой запроса 176

Статья Программист Конфигурация (md, cf) v8 v8::Запросы Абонемент ($m) Инструментарий разработчика Практика программирования

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

1 стартмани

24.04.2018    30499    75    kalyaka    34       

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

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

29700 руб.

Заполняем по шаблону (по умолчанию) 69

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

08.02.2018    18959    20    mvxyz    17       

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов 124

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

1 стартмани

01.02.2018    26647    62    rpgshnik    46