|   |   | 
| 
 | Групповое изменение цифровой информации в табличных частях | ☑ | ||
|---|---|---|---|---|
| 0
    
        Irkutsk 27.07.23✎ 07:27 | 
        Мне надо массово поправить табличные части документов в плане цифровой информации (где одно, где другое).
 Вот я построил модель. Перед нами Бухгалтерия предприятия. &НаСервере Процедура Команда1НаСервере() //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | РеализацияТоваровУслугУслуги.Ссылка КАК Ссылка |ИЗ | Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги | |УПОРЯДОЧИТЬ ПО | РеализацияТоваровУслугУслуги.Ссылка.Дата УБЫВ"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи Док = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); СтрТЧ = Док.Услуги[0]; СтрТЧ.Количество = 2000; Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); ОбщегоНазначения.СообщитьПользователю(Док.ПроверитьЗаполнение()); КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА КонецПроцедуры &НаКлиенте Процедура Команда1(Команда) Команда1НаСервере(); КонецПроцедуры Я программно меняю количество. Но есть проблема: в строках сумма не меняется. Т.е. открываешь документ, а там стоит новое количество, но по строкам суммы не пересчитаны. Вывод: код опасен. Сумму я заметил. Но возможно, есть еще что-то, чего я не заметил. Отсюда вопрос: как правильно менять цифровую информацию в табличных частях документов? Может быть, надо какой-то стандартной обработкой с ИТС это делать или еще что. Был бы признателен за совет. | |||
| 1
    
        Гипервизор 27.07.23✎ 07:42 | 
        (0) Т.е. вы меняете количество, а 1С такая-сякая только количество и меняет, а суммы сама не догадалась? Надо же, какой опасный код..     | |||
| 2
    
        2S 27.07.23✎ 07:57 | 
        (0) если бы сам писал код, логику бы понял, вывод - код содран или написан ИИ
 подсказка - в форме документа у поля количество есть обработчик "ПриИзменении" | |||
| 3
    
        Irkutsk 27.07.23✎ 08:07 | 
        Не поможет тут ПриИзменении. Во-первых, в типовой это событие уже обработано. А во-вторых, количество менялось программно.     | |||
| 4
    
        Мультук гуру 27.07.23✎ 08:08 | 
        (0) 
 1) Изучаем код типовой 1С. Разбираемся -- а что там срабатывает при изменении в колонке "Количество" ? -- Срабатывает на &НаКлиенте, а нужно переделать &НаСервере 2) Делаем две одинаковые "подопытные" реализации. В одной меняем руками, в другой своим кодом. Потом сравниваем 3) Сравнение. Можно писать запросы в консоле запросов. Есть обработки (infostart), который показывают объект полностью, все его реквизиты и табличные части. 4) Смотрим на проводки. Движения. P.S. Если будете менять номенклатуру, то нужно будет перезаполнить счета учета, цену, ставку НДС Если будете менять контрагента, то {еще всякое} "в плане цифровой информации", "Вот я построил модель" -- не нужно пытаться говорить умными словами. А то такое чувство, что перед нами попаданец-программист из 60-70х, который сел за 1С | |||
| 5
    
        Aleksey 27.07.23✎ 08:09 | 
        кстати код не рабочий
 (меняет только первую строку у первого документа. и это при том что у этого документа вообще может и не быть строк) | |||
| 6
    
        НафНаф 27.07.23✎ 08:19 | 
        (1) ну вообще-то да, если бы 1С реализовала свойства и/или скрыла поля объектов, прописав логику при изменении данных объекта (а не только формы) - все бы и взлетело. Надеюсь такое будет в 9.х     | |||
| 7
    
        Гипервизор 27.07.23✎ 08:31 | 
        (6) Не понял, а если надо будет поменять только количество?     | |||
| 8
    
        Aleksey 27.07.23✎ 08:35 | 
        (7) ну тогда по классики
 если ОбменДанными.Загрузка тогда возврат; КонецЕсли; | |||
| 9
    
        НафНаф 27.07.23✎ 08:41 | 
        (7) если надо менять ТОЛЬКО количество, то у вас перестает работать ИНВАРИАНТ (или ему подобный): Цена = Окр(Сумма/Количество,2) - а это уже беда     | |||
| 10
    
        mikecool 27.07.23✎ 08:43 | 
        ничего, ИИ быстро учится, скоро все будем улицы мести )     | |||
| 11
    
        Галахад гуру 27.07.23✎ 09:39 | 
        Хм. Цифровая информация, модель... Приятно обогатить свой словарный запас.     | |||
| 12
    
        stix2010 27.07.23✎ 09:44 | 
        (11) сейчас все кому не лень в кодеры идут, конструкторами попользуются, книжек разных начитаются, а потом излучают поток сознания.     | |||
| 13
    
        shuhard 27.07.23✎ 09:44 | 
        (0)[Вот я построил модель. Перед нами Бухгалтерия предприятия.] отличный зачин и вдруг вместо трансформации ансамбля - дешёвка [Групповое изменение]
 за это из БА гонят сразу и навсегда | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |