0. m-rv 783 29.05.18 16:43 Сейчас в теме

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

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

Перейти к публикации

Лучшие комментарии
6. uri1978 126 01.06.18 18:04 Сейчас в теме
С нетерпением ждем DROP TABLE, CREATE TABLE, ALTER TABLE и особенно DROP DATABASE
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; +48 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. vasilev2015 1418 01.06.18 10:19 Сейчас в теме
Перед исполнением запроса таблицы блокируются также, как бы это сделала СУБД ?
2. m-rv 783 01.06.18 10:52 Сейчас в теме
(1) никаких специальных блокировок не накладывается, но цикл изменений происходит в одной транзакции.
3. t.v.s. 92 01.06.18 12:44 Сейчас в теме
Идея отличнейшая!
Для полного счастья не хватает конструкции
ВСТАВИТЬ [ИЛИ ИЗМЕНИТЬ] <Имя таблицы> ВЫБРАТЬ ИЗ...
4. m-rv 783 01.06.18 13:35 Сейчас в теме
(3) Запрос ВСТАВИТЬ (INSERT) ожидается, следите за обновлениями
5. vano-ekt 526 01.06.18 17:43 Сейчас в теме
6. uri1978 126 01.06.18 18:04 Сейчас в теме
С нетерпением ждем DROP TABLE, CREATE TABLE, ALTER TABLE и особенно DROP DATABASE
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; +48 Ответить
10. kote 499 02.06.18 19:47 Сейчас в теме
(6) это невозможно по определению - объекты и регистры создаются исключительно только через конфигуратор..
11. baton_pk 392 02.06.18 20:12 Сейчас в теме
(10)
это невозможно по определению

не, ну... выгрузить конфу в файлы, поменять/добавить/удалить, загрузить обратно и обновить.
13. kote 499 02.06.18 20:21 Сейчас в теме
(11) потом выгнать всех пользователей, применить изменения, загнать всех обратно.. и обязательно не забыть на каком месте остановились, чтоб с этого же места продолжить.
14. baton_pk 392 02.06.18 21:37 Сейчас в теме
(13) ну да. для этого ещё пара другая обработок. :)
41. zarucheisky 22.08.18 13:54 Сейчас в теме
7. Dream_kz 93 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 392 02.06.18 20:13 Сейчас в теме
Идея - огонь! Сам ночами просыпался с мыслью сделать подобное!
16. German_Tagil 7 08.06.18 05:53 Сейчас в теме
конфигурация КА 1.1 - не запустилось
18. m-rv 783 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 783 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 783 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 783 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 783 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 783 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 783 11.07.18 09:39 Сейчас в теме
(37) вы знаете, у меня всегда подобные комментарии вызывают ассоциации типа "зачем нужен белый хлеб, если есть черный?", "зачем придумывать ауди, когда уже есть мерседес?".
это альтернативный инструмент. смотришь, сравниваешь, выбираешь какой подходит в твоей ситуации. в моем понимании, основными (но не факт что единственными) плюсами запроса на изменение является его предельная простота в сравнении с "наколеночной" обработкой и крайне широкие возможности в сравнении с обработкой группового изменения данных.
соответственно, аналитики и консультанты теперь имеют альтернативный инструмент массового изменения данных. да и программисту по-короче набросать две строчки запроса, чем писать "запрос = новый запрос();...".
40. Necytij 11.07.18 19:32 Сейчас в теме
(38) Я свои ассоциации называть не буду. Но про хлеб - "на вкус и цвет", про Ауди - хотя бы разница в цене тут цена производительности таже, цена программирования очень спорна. Примеры, мне кажется, не подходят.
Я и спрашиваю преимущества в чем? В том, что есть люди которым удобнее писать запрос вручную наизусть зная структуру имен полей? Чем перетащить из таблички? И по вашему ответу тоже не вижу ни одного реального примера. Представите хоть один реальный, значимый?
Чем кстати этот инструмент шире по сравнению с хорошей групповой обработкой?

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

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

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

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

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

Вакансии

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Ведущий программист 1С
Омск
зарплата от 70 000 руб. до 110 000 руб.
Полный день

Консультант-аналитик 1С ЗУП 3.1
Белгород
зарплата от 40 000 руб. до 50 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 200 000 руб.
Полный день

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день