Что я не правильно делаю? Обработкой в документы проставляю количество..
Которое никак не хочет проставляться..
Всем привет. Помогите пожалуйста, что не так?
Всем привет. Помогите пожалуйста, что не так?
&НаКлиенте
Процедура ДобавитьКоличество(Команда)
ДобавлениеКоличества();
КонецПроцедуры
// Добавление количества в документы, которые при копировании не получили количества штук
//(килограммы скопировались успешно)
&НаСервере
Процедура ДобавлениеКоличества()
//////// получаем запросом документ, в котором будем проверять количество и проставлять если требуется единицу
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Покупки.Ссылка
|ИЗ
| Документ.Покупки КАК Покупки
|ГДЕ
| Покупки.Комментарий = &Комментарий";
Запрос.УстановитьПараметр("Комментарий", "Автомат");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ОбПокупка = Выборка.Ссылка.ПолучитьОбъект();
Для Каждого Строка Из Выборка.Ссылка.ТабличнаяЧасть4 Цикл
Колич = Строка.Количество;
Если Колич > 0 Тогда Продолжить Иначе Колич = ("1,000")
КонецЕсли;
КонецЦикла;
Сообщить("Создается " + ОбПокупка);
Сообщить(Колич);
//Прервать;
КонецЦикла;
ОбПокупка.Записать();
Сообщить("Создание завершено!");
КонецПроцедуры
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну, что не так. Не проставляешь количество в документы, вот, в общем, и всё, что не так. Читаешь запросом документы, если в строке количество = 0, то присваиваешь локальной переменной Колич, которой раньше присвоил значение, которое находится в поле "Количество" строки ТЧ строковое значение "1.000" и продолжаешь цикл.
Можешь так сделать
Пока Выборка.Следующий() Цикл
ОбПокупка = Выборка.Ссылка.ПолучитьОбъект();
Для Каждого Строка Из Выборка.Ссылка.ТабличнаяЧасть4 Цикл
Колич = Строка.Количество;
Если Колич > 0 Тогда
Продолжить
Иначе Колич =1;
КонецЕсли;
КонецЦикла;
Сообщить("Создается " + ОбПокупка);
Сообщить(Колич);
ОбПокупка.Записать();
//Прервать;
КонецЦикла;
Пока Выборка.Следующий() Цикл
ОбПокупка = Выборка.Ссылка.ПолучитьОбъект();
Для Каждого Строка Из Выборка.Ссылка.ТабличнаяЧасть4 Цикл
Колич = Строка.Количество;
Если Колич > 0 Тогда
Продолжить
Иначе Колич =1;
КонецЕсли;
КонецЦикла;
Сообщить("Создается " + ОбПокупка);
Сообщить(Колич);
ОбПокупка.Записать();
//Прервать;
КонецЦикла;
(4) да если бы дело было в этом. В 1С, кстати, неявное преобразование типов кое-где работает, так что числовому реквизиту можно присвоить строковое значение (если оно написано корректно и Число(Значение) не выдаст ошибку) и оно таки присвоится.
Пока Выборка.Следующий() Цикл
ОбПокупка = Выборка.Ссылка.ПолучитьОбъект();
Для Каждого Строка Из ОбПокупка .ТабличнаяЧасть4 Цикл
Если Строка.Количество> 0 Тогда
Продолжить
Иначе Строка.Количество=1;
КонецЕсли;
КонецЦикла;
Сообщить("Создается " + ОбПокупка);
Сообщить(Колич);
ОбПокупка.Записать();
//Прервать;
КонецЦикла;
ОбПокупка = Выборка.Ссылка.ПолучитьОбъект();
Для Каждого Строка Из ОбПокупка .ТабличнаяЧасть4 Цикл
Если Строка.Количество> 0 Тогда
Продолжить
Иначе Строка.Количество=1;
КонецЕсли;
КонецЦикла;
Сообщить("Создается " + ОбПокупка);
Сообщить(Колич);
ОбПокупка.Записать();
//Прервать;
КонецЦикла;
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот