Сделал модальную запись всех Артикулов в УТ 11.5 в итоге размер базы вырос в 2 раза и полетели все единицы измерения. Единицы

1. zoeh 31 11.07.24 14:14 Сейчас в теме
Единицы хранения с кг перескочили на штуки, как так че за подстава?
НаСервере
Процедура Команда1НаСервере()
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ 
		|	Номенклатура.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура
		|ГДЕ
		|	Номенклатура.ЭтоГруппа = &пЛОЖЬ
		|	И Номенклатура.Артикул = &пАрт
		|	И Номенклатура.Код = &пКод";
	
	Запрос.УстановитьПараметр("пАрт", "");
	Запрос.УстановитьПараметр("пЛОЖЬ", ЛОЖЬ); 
	Запрос.УстановитьПараметр("пКод", "ЦБ-00001992");
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		//Сообщить(  СокрЛП(ВыборкаДетальныеЗаписи.Ссылка)+ СокрЛП(ВыборкаДетальныеЗаписи.Ссылка.Артикул)  ); 
		пОбъект=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
		пОбъект.Артикул = ("АВТ"+СокрЛП(пОбъект.Код));
		пОбъект.Записать();
		// Вставить обработку выборки ВыборкаДетальныеЗаписи
	КонецЦикла;
	
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

	// Вставить содержимое обработчика.
КонецПроцедуры

Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Zevzm 11.07.24 14:30 Сейчас в теме
Два раза один и тот же параметр используете, хотя передаете 3. По факту обработать пытаетесь номенклатуру с пустым кодом и артикулом. Зачем булево вообще в параметре передавать?
3. zoeh 31 11.07.24 14:33 Сейчас в теме
(2) это все тонкости.
Последствия:
1. размер базы в SQL.BAK вырос с 6 гб до 12
2. единицы хранения заполнились вместо кг\кор\пач штуками

соотвественно коллапс
6. Zevzm 11.07.24 15:19 Сейчас в теме
(3) Сложно прогнозировать последствия, когда для вас ошибки в запросе с перезаписью объектов - тонкости.
Сформируйте структуру хранения базы данных до и после. Сравните какие таблицы выросли в размерах.
Sejix; d4rkmesa; +2 Ответить
4. TormDV 11.07.24 14:39 Сейчас в теме
У вас в базе вся номенклатура была с кодом "ЦБ-00001992" и пустым артикулом? Смотрите, что происходит перед/после записи элемента справочника номенклатура. Возможно, подписки на события еще есть какие-то.
5. ddukatov 11.07.24 14:51 Сейчас в теме
Судя по запросу у вас максимум должен был перезаписаться только один элемент номенклатуры с кодом ЦБ-00001992, вся номенклатура не могла "слететь"
7. starjevschik 11.07.24 15:30 Сейчас в теме
Интересно, вопрос об одном действии, а листинг очевидного другого действия. Продолжается поиск телепатов среди читателей, спецзадание спецподразделения...
8. zoeh 31 12.07.24 03:49 Сейчас в теме
Это уже переделанный код для теста, я добавил условие чтоб проверить одну позицию, изначально код был такой:

НаСервере
Процедура Команда1НаСервере()
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ 
        |    Номенклатура.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.ЭтоГруппа = &пЛОЖЬ
        |    И Номенклатура.Артикул = &пАрт";
    
    Запрос.УстановитьПараметр("пАрт", "");
    Запрос.УстановитьПараметр("пЛОЖЬ", ЛОЖЬ); 

    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        //Сообщить(  СокрЛП(ВыборкаДетальныеЗаписи.Ссылка)+ СокрЛП(ВыборкаДетальныеЗаписи.Ссылка.Артикул)  ); 
        пОбъект=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        пОбъект.Артикул = ("АВТ"+СокрЛП(пОбъект.Код));
        пОбъект.Записать();
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    // Вставить содержимое обработчика.
КонецПроцедуры
Показать
9. muskul 15.07.24 02:01 Сейчас в теме
Расскажи чем закончилось то?
10. zoeh 31 16.07.24 11:07 Сейчас в теме
(9) Постобработчик записи вызывал перебор упаковок, и на весь сорт продукции ему не понравилась упаковка, где единицей была кг, тем самым он записывал её без заззрения совести в штуку

нужно было в начале записи добавить:
пОбъект.ОбменДанными.Загрузка = Истина;


по какой причине пока не пойму
11. user1992988 16.07.24 13:49 Сейчас в теме
(10)
не пойму
Поздравляю, ты нашел диверсанта который сделал в базе непонятные действия!

А чему же ты научился на этом примере? Что будешь предпринимать в будущем в похожих случаях?
12. zoeh 31 16.07.24 19:43 Сейчас в теме
(11) н и ч е г о , да пусть мне повезет в следующий раз!
13. user1992988 16.07.24 19:56 Сейчас в теме
(12)
пусть
Ты уже запланировал, какую именно информацию ты будешь портить в какой базе? Отличный подход. Одобряю.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот