8.х Ввод на основании

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dmitrij, 16 дек 2009.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Хочу сделать внешнию обработку заполнение табличной части документа установка цен номенклатуры по оприходованию, но что то я не пойму в чем проблема, в отладчике все нормально, а на деле пусто почему то
    Код:
    Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
    Форма=ЭтотОбъект.ПолучитьФорму("Форма");
    Форма.ОткрытьМодально();
    Если ЗначениеЗаполнено(Документ) Тогда
    
    Для Каждого Стр Из Документ.Товары Цикл
    Для Каждого СтрТЦ Из Объект.ТипыЦен Цикл
    
    НоваяСтр=Объект.Товары.Добавить();
    НоваяСтр.Номенклатура=Стр.Номенклатура;
    НоваяСтр.Валюта=Константы.ВалютаУправленческогоУчета.Получить();
    НоваяСтр.ЕдиницаИзмерения=НоваяСтр.Номенклатура.ЕдиницаХраненияОстатков;
    
    Если Не ЗначениеЗаполнено(СтрТЦ.ТипЦен.БазовыйТипЦен) Тогда
    НоваяСтр.ТипЦен=СтрТЦ.ТипЦен;		
    НоваяСтр.Цена=Стр.Цена;
    Иначе
    НоваяСтр.ТипЦен=СтрТЦ.ТипЦен;
    НоваяСтр.СпособРасчетаЦены=Перечисления.СпособыРасчетаЦены.ПоПроцентнойНаценкеНаБазовыйТип;
    НоваяСтр.ПроцентСкидкиНаценки=СтрТЦ.ТипЦен.ПроцентСкидкиНаценки;
    КонецЕсли;
    КонецЦикла;
    Объект.Записать();
    КонецЦикла;
    
    
    Иначе
    Сообщить("Не выбран документ Источник");
    КонецЕсли;
    
    КонецПроцедуры
    
    
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Вы форму открываете модально - пока она не закроется - код дальше не пойдет
    2. Откуда берется ДОКУМЕНТ
    3. Вообще мешанина какая-то, форму получаете через ЭтотОбъект, параметр процедуры - объект, а перебираете Документ
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    документ выбирается в форме, так что зачем продолжать код если документ еще не выбран.
    из документа выбирается номенклатура и добавляется в объект
  4. Абырвалг
    Offline

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    Код:
    в отладчике все нормально
    
    Что означает слово "нормально"? Вы смотрите содержимое ТЧ объекта Объект.Товары и там есть все записи, а визуально в табличном поле ничего нет? А табличное поле связано с ТЧ объекта? А в ТЧ Объект.ТипыЦен точно есть записи?
  5. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Да, в отладчике во всех таблицах есть данные, а визуально ничего нет
    можете сами проверить, файл подключается в справочнике внешние обработки

    Вложения:

  6. Абырвалг
    Offline

    Абырвалг Опытный в 1С

    Регистрация:
    8 дек 2009
    Сообщения:
    112
    Симпатии:
    1
    Баллы:
    29
    Пробуй так:
    Код:
    Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
    Если ЗначениеЗаполнено(Объект.ТипыЦен) Тогда
    Форма=ЭтотОбъект.ПолучитьФорму("Форма");
    Форма.ОткрытьМодально();
    Если ЗначениеЗаполнено(Документ) Тогда
    
    Для Каждого Стр Из Документ.Товары Цикл
    Для Каждого СтрТЦ Из Объект.ТипыЦен Цикл
    
    НоваяСтр=ТабличноеПолеОбъекта.Значение.Добавить();
    НоваяСтр.Номенклатура=Стр.Номенклатура;
    НоваяСтр.Валюта=Константы.ВалютаУправленческогоУчета.Получить();
    НоваяСтр.ЕдиницаИзмерения=НоваяСтр.Номенклатура.ЕдиницаХраненияОстатков;
    
    Если Не ЗначениеЗаполнено(СтрТЦ.ТипЦен.БазовыйТипЦен) Тогда
    НоваяСтр.ТипЦен=СтрТЦ.ТипЦен;		
    НоваяСтр.Цена=Стр.Цена;
    Иначе
    НоваяСтр.ТипЦен=СтрТЦ.ТипЦен;
    НоваяСтр.СпособРасчетаЦены=Перечисления.СпособыРасчетаЦены.ПоПроцентнойНаценкеНаБазовыйТип;
    НоваяСтр.ПроцентСкидкиНаценки=СтрТЦ.ТипЦен.ПроцентСкидкиНаценки;
    КонецЕсли;
    КонецЦикла;
    Объект.Записать();
    КонецЦикла;
    
    
    Иначе
    Сообщить("Не выбран документ Источник");
    КонецЕсли;
    Иначе
    Сообщить("Не выбраны типы цен");
    КонецЕсли;
    КонецПроцедуры
    
    

Поделиться этой страницей