Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 04:55

Комментарий в документе Закрытие заказов покупателей при закрытии.

Автор leonid_adm, 15 мая 2015, 13:34

0 Пользователей и 1 гость просматривают эту тему.

leonid_adm

Добрый день!
Подскажите как можно реализовать.
Нужно чтобы комментарий из документа заказы покупателей подтягивался в документ Закрытие заказов покупателей при закрытии.

Rasty

Получи ссылку на документ реализации, а из нее тащи комментарий...
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

leonid_adm

Спасибо большое!
Добавил в процедуру Комментарий = Документы.ЗаказПокупателя.ПолучитьСсылку(Комментарий);

Добавлено: 15 мая 2015, 14:37


Хотя нет, выдает ошибку.
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Документ.ЗакрытиеЗаказовПокупателей.МодульОбъекта(348)}: Ошибка при вызове метода контекста (ПолучитьСсылку)

по причине:
Несоответствие типов (параметр номер '1')

cska-fanat-kz

Цитата: leonid_adm от 15 мая 2015, 13:34
Добрый день!
Подскажите как можно реализовать.
Нужно чтобы комментарий из документа заказы покупателей подтягивался в документ Закрытие заказов покупателей при закрытии.


как между собой "контачат" документ Заказ и документ Закрытие?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Rasty

Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

leonid_adm

КА 1.1.
Пробую
Комментарий = Документы.ЗаказПокупателя.ПолучитьОбъект(Комментарий);
            Комментарий.Записать();
Выдает ошибку несоответствия типов.

Kironten

В общем заказы покупателя располагаются в табличной части "Заказы" документа ЗакрытиеЗаказовПокупателей. Реквизит ТЧ - ЗаказПокупателя.
Теоретически, надо обойти ТЧ. И из каждого документа выдрать комментарий.
Что то вроде:

СтрокаКомментария = "";
Для Каждого ЗаказДок Из Заказы Цикл
    СтрокаКомментария = СтрокаКомментария + ЗаказДок.ЗаказПокупателя.Комментарий + ", ";
КонецЦикла
Комментарий = Лев(СтрокаКомментария, СтрДлина(СтрокаКомментария) - 2);

leonid_adm

Вставил в процедуру, значение подставляется при нажатии "записать", но при нажатии "ОК", выдается ошибка
Преобразование значения к типу Булево не может быть выполнено

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   
   Если ОбменДанными.Загрузка  Тогда
      Возврат;
   КонецЕсли;
   
    //Доработка
   Если НачалоДня(Дата) = НачалоДня(РабочаяДата) Тогда
      Дата = РабочаяДата + (ТекущаяДата() - НачалоДня(ТекущаяДата()));
   КонецЕсли;
   //КонецДоработка
   
СтрокаКомментария = "";
Для Каждого ЗаказДок Из Заказы Цикл
    СтрокаКомментария = ЗаказДок.ЗаказПокупателя.Комментарий;
КонецЦикла;
Комментарий = Лев(СтрокаКомментария, СтрДлина(СтрокаКомментария) - 2);
   
КонецПроцедуры // ПередЗаписью

Добавлено: 16 мая 2015, 11:40


Разобрался. Всем спасибо за помощь.

cska-fanat-kz

Для Каждого ЗаказДок Из Заказы Цикл
    СтрокаКомментария = ЗаказДок.ЗаказПокупателя.Комментарий;
КонецЦикла;

так вы получаете комментарий документа в последней строке!
посмотрите как написал Kironten (если конечно вам не именно так надо ;) )

можно тогда не гонять цикл а написать
Комментарий = Заказы[Заказы.Количество()-1].ЗаказПокупателя.Комментарий;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Kironten

Цитата: cska-fanat-kz от 17 мая 2015, 17:12
можно тогда не гонять цикл а написать
Комментарий = Заказы[Заказы.Количество()-1].ЗаказПокупателя.Комментарий;

Если строк не будет, отвалится с ошибкой. Визгу от пользователей будет...
А прецеденты будут, к гадалке не ходи.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск