Группа: Пользователи
Сообщений: 96
Из: Кривой Рог, Украина
Спасибо сказали: 10 раз
Рейтинг: 0
Поставили задачу, необходимо добавить колонку "Сумма Потрачено" в список документа "Авансовый Отчет". Сумма эта вычисляется в форме документа на основе заполнения 2 вкладок на форме. Как можно вытащить это значение?
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0
Можно обработкой записать, если сильно надо. ДокументОбъект.Записать(РежимЗаписиДокумента.Запись) - это не перепроведение, на партии запасов не повлияет.
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0
Вообще надо инициировать запись документа и процедуру по расчету нового реквизита. Значит, надо реквизит какой-то поменять. Теоретически - пробел в Комментарий записать. А если там уже был комментарий заполнен?.. Но я бы лучше написала свою обработку в три строки. Быстро, сурово, ничего лишнего.
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im
Группа: Пользователи
Сообщений: 96
Из: Кривой Рог, Украина
Спасибо сказали: 10 раз
Рейтинг: 0
Цитата(Rayne @ 23.07.14, 11:08)
Вообще надо инициировать запись документа и процедуру по расчету нового реквизита. Значит, надо реквизит какой-то поменять. Теоретически - пробел в Комментарий записать. А если там уже был комментарий заполнен?.. Но я бы лучше написала свою обработку в три строки. Быстро, сурово, ничего лишнего.
Я 1С меньше месяца назад впервые увидел. Так что многого в глаза еще не видел, хотя и читаю литературку все время. Вот обработки еще не ковырял вообще (
Я так понимаю надо написать нечто типа такого:
Если Комментарий = неопределено Тогда Комментарий = " "; Иначе Комментарий = Комментарий + " " КонецЕсли;
А вот как из этого обработку сделать - чет не соображу никак (
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0
В этом случае обязательно сделать копию базы. На копии потренироваться с групповой обработкой. Поинтересуйтесь у бухгалтеров нужны ли комментарии в авансовых отчетах. В групповой обработке отобрать все документы Авансовый отчет, на второй закладке выбрать действие Изменить комментарий. Выполнить. В этом случае проведения не будет, только запись.
Если своей обработкой... Можно получить выборку документов запросом, а можно перебрать без запроса.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | АвансовыйОтчет.Ссылка |ИЗ | Документ.АвансовыйОтчет КАК АвансовыйОтчет |ГДЕ | АвансовыйОтчет.Дата МЕЖДУ &Дата1 И &Дата2";
//делаем выборку Выборка = Запрос.Выполнить().Выбрать(); //перебираем элементы выборки в цикле Пока Выборка.Следующий() Цикл //получим сам объект, чтобы иметь возможность его записать ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); Сообщить("Записан " + ДокументОбъект); КонецЦикла; Предупреждение("Обработка завершена!");
Это код для своей обработки - не нужно трогать ни реквизиты, ни комментарий.
А все, что выше - я говорила для универсальной встроенной обработки "Групповая обработка справочников и документов". Там нет понятия простой перезаписи документов - или проведение, или изменение реквизитов.
Сообщение отредактировал Rayne - 23.07.14, 10:34
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im
Группа: Пользователи
Сообщений: 96
Из: Кривой Рог, Украина
Спасибо сказали: 10 раз
Рейтинг: 0
Через произвольный алгоритм в "Универсальный подбор и обработка объектов" попробовал сейчас - оно отработало, выдало, мол успешно завершено и количество обработанных элементов показало, а в списке документов как было пусто в поле суммы, так и осталось.
Группа: Пользователи
Сообщений: 96
Из: Кривой Рог, Украина
Спасибо сказали: 10 раз
Рейтинг: 0
Цитата(Rayne @ 23.07.14, 11:32)
В этом случае обязательно сделать копию базы. На копии потренироваться с групповой обработкой. Поинтересуйтесь у бухгалтеров нужны ли комментарии в авансовых отчетах. В групповой обработке отобрать все документы Авансовый отчет, на второй закладке выбрать действие Изменить комментарий. Выполнить. В этом случае проведения не будет, только запись.
На копии сижу постоянно, сейчас попробую сделать.
Цитата(Rayne @ 23.07.14, 11:35)
А если документ вручную перезаписать - суммы появляются? Возможно, расчет вашего реквизита отрабатывает только при интерактивном проведении.
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0
Реквизит в модуле форме рассчитывается? Если да - тогда надо в тот код, что я написала добавить еще расчет реквизита и присвоение.
ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); ДокументОбъект.СуммаПотрачено = ...; //здесь итоги складываем или что там надо посчитать ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im
Группа: Местный
Сообщений: 86
Спасибо сказали: 17 раз
Рейтинг: 0
Ну вот этот кусочек туда и впихнуть, в эту обработку. А еще лучше попробовать ее перенести в модуль документа. Посмотрите для примера процедуру ПередЗаписью() в модуле документа и обратите внимание на то, как рассчитывается реквизит СуммаДокумента.
1С - как старый советский конструктор для детей. Вроде и все детали на месте, но без молотка и напильника нифига не собирается. (с) bash.im
Группа: Пользователи
Сообщений: 96
Из: Кривой Рог, Украина
Спасибо сказали: 10 раз
Рейтинг: 0
В общем реализовал таким образом:
Через "Универсальный подбор и обработка объектов", на вкладке "Обработка" в разделе "Произвольный алгоритм" вписал и выполнил такой код:
Попытка Курс = ?(Объект.КурсВал = 0, 1, Объект.КурсВал); Объект.СуммаПотрачено = Объект.Состав.Итог("Сумма") + ?(НЕ Объект.ЦеныСНДС, Объект.Состав.Итог("НДС"), 0) / Курс + Объект.Оплата.Итог("Сумма");; //здесь итоги складываем или что там надо посчитать Объект.Записать(РежимЗаписиДокумента.Запись); Исключение Сообщить("Ошибка"); КонецПопытки;
Все отработало нормально, везде все суммы посчитало, была правда одна ошибка - там за 11 год еще не указан был вид НДС, а в таком случае запрет на запись стоит, но это уже не относится к работе данной обработки.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!