|   |   | 
| 
 | Смена статусов для нескольких документов | ☑ | ||
|---|---|---|---|---|
| 0
    
        Sergio447 31.12.22✎ 01:45 | 
        Здравствуйте!
 Есть обработка, в которой выбираю несколько документов и устанавливаю им статус. По кнопке изменить, хотелось бы чтобы статус записался для всех выбранных документов. Подскажите пожалуйста, как это сделать, не совсем понимаю. Скрин обработки: https://cloud.mail.ru/public/aW6c/3GHe3nBuz И сам код: &НаКлиенте Процедура ИзменениеСтатуса(Команда) ИзменениеСтатусаНаСервере(); КонецПроцедуры &НаСервере Процедура ИзменениеСтатусаНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриходныйОрдерНаТовары.Ссылка КАК Ссылка, | ПриходныйОрдерНаТовары.Статус КАК Статус |ИЗ | Документ.ПриходныйОрдерНаТовары КАК ПриходныйОрдерНаТовары |ГДЕ | ПриходныйОрдерНаТовары.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",Документ.ДоступныеЗначения); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Сообщить(Документ); КонецПроцедуры | |||
| 1
    
        ejikbeznojek 31.12.22✎ 14:31 | 
        Запрос по тч товары переделай на запрос по документам. 
 В параметр ссылка нужно указать что-то вроде массива или списка документов. После результатзапроса.выбрать напиши цикл. Пока выборкадетальныезапичи.следующий() цикл | |||
| 2
    
        ejikbeznojek 31.12.22✎ 14:32 | 
        П1 это я не туда посмотрел.     | |||
| 3
    
        Sergio447 31.12.22✎ 19:03 | 
        (2) интересно, но не понятно)     | |||
| 4
    
        vicof 01.01.23✎ 14:26 | 
        Может уже пора почитать книжки, статью и советы из прошлой темы?     | |||
| 5
    
        Sergio447 02.01.23✎ 00:21 | 
        (4) ага, вот если это один документ в виде объекта, то код будет такой и он отрабатывает:
 &НаКлиенте Процедура ИзменениеСтатуса(Команда) ИзменениеСтатусаНаСервере(); КонецПроцедуры &НаСервере Процедура ИзменениеСтатусаНаСервере() ДокОбъект = Объект.Документ.ПолучитьОбъект(); ДокОбъект.Статус = Объект.Статус; ДокОбъект.Записать(); КонецПроцедуры но мне нужно чтобы этот код отработал с типом список значений. | |||
| 6
    
        vicof 02.01.23✎ 00:50 | 
        У тебя не список значений в (0) на картинке     | |||
| 7
    
        Мимохожий Однако 02.01.23✎ 07:58 | 
        (3) Пока Выборка...Следующий() Цикл
 ДокОбъект = выборка..ссылка.ПолучитьОбъект(); ДокОбъект.Статус = Объект.Статус; ДокОбъект.Записать(); КонецЦикла; | |||
| 8
    
        Sergio447 02.01.23✎ 21:58 | 
        (7) Сделал так и не работает:
 &НаКлиенте Процедура ИзменениеСтатуса(Команда) ИзменениеСтатусаНаСервере(); КонецПроцедуры &НаСервере Процедура ИзменениеСтатусаНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриходныйОрдерНаТовары.Ссылка КАК Ссылка, | ПриходныйОрдерНаТовары.Статус КАК Статус |ИЗ | Документ.ПриходныйОрдерНаТовары КАК ПриходныйОрдерНаТовары |ГДЕ | ПриходныйОрдерНаТовары.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",Документ.ДоступныеЗначения); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ДокОбъект = Объект.Документ.ПолучитьОбъект(); ДокОбъект.Статус = Объект.Статус; ДокОбъект.Записать(); КонецЦикла; КонецПроцедуры | |||
| 9
    
        AAA 03.01.23✎ 07:40 | 
        (8)ДокОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();     | |||
| 10
    
        D_E_S_131 03.01.23✎ 14:39 | 
        Запрос, с условием "=" на ссылку вернет только один документ. Для сравнения со списком значений или массивом, нужно использовать условие "В()".     | |||
| 11
    
        Sergio447 03.01.23✎ 21:26 | 
        (9) так не работает, после ВыборкаДетальныеЗаписи доступны только функции, а не ссылка     | |||
| 12
    
        Sergio447 03.01.23✎ 21:30 | 
        (10) изменил в запросе на оператор В, но толку мало ничего не поменялось     | |||
| 13
    
        AAA 04.01.23✎ 03:34 | 
        а зачем вообще запрос, если уже есть выбранные документы?     | |||
| 14
    
        Мимохожий Однако 04.01.23✎ 06:33 | 
        (11) Стесняюсь спросить. Отладчиком смотрел?     | |||
| 15
    
        Sergio447 05.01.23✎ 00:40 | 
        (14) да, вот здесь ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); почему-то ошибка доступа     | |||
| 16
    
        AAA 05.01.23✎ 08:00 | 
        Отладьте сначала саму выборку с выводом ссылок с помощью Сообщить()
 Потом решайте вторую часть - изменение статусов И еще раз - зачем нужен запрос, если все уже есть в списке. Это такая же выборка. Перебирайте список, получайте объекты и меняйте статусы | |||
| 17
    
        Мимохожий Однако 05.01.23✎ 09:40 | 
        (15) Если делаешь запрос к одному документу, то проще использовать метод ссылка.ПолучитьОбъект()
 PS. Информацию выдаешь кусками и без подробностей. Так дело не пойдёт | |||
| 18
    
        Sergio447 05.01.23✎ 20:06 | 
        (16) Вот первая часть которая работает и выводить в Сообщить, все документы указанные в списке значений:
 &НаКлиенте Процедура ИзменениеСтатуса(Команда) ИзменениеСтатусаНаСервере(); КонецПроцедуры &НаСервере Процедура ИзменениеСтатусаНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриходныйОрдерНаТовары.Ссылка КАК Ссылка, | ПриходныйОрдерНаТовары.Статус КАК Статус |ИЗ | Документ.ПриходныйОрдерНаТовары КАК ПриходныйОрдерНаТовары |ГДЕ | ПриходныйОрдерНаТовары.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",Документ.ДоступныеЗначения); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Сообщить(Документ); КонецПроцедуры | |||
| 19
    
        Мимохожий Однако 05.01.23✎ 20:18 | 
        (18) Достаточно при данном запросе 
 Сообщить(ссылка) )) | |||
| 20
    
        Мимохожий Однако 05.01.23✎ 20:18 | 
        (19) ссылка = Документ.ДоступныеЗначения     | |||
| 21
    
        Мимохожий Однако 05.01.23✎ 20:19 | 
        (20) Ох уж эти праздники....
 Сообщить (Документ) | |||
| 22
    
        Sergio447 05.01.23✎ 20:23 | 
        (21) Все я нашел в чем дело) просто нужно Документ указать без Доступных значений)     | |||
| 23
    
        Sergio447 05.01.23✎ 20:23 | 
        (21) И не говорите, до сих пор голова гудит)))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |