Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Поле объекта не обнаружено

Поле объекта не обнаружено
Я
   Тринадцать
 
05.11.19 - 06:01
Всем привет! Тренируюсь в написании обработок, новичок, поэтому не судите строго
Обработка для Бухгалтерии 3.0 создания док Операция и дальнейшего его заполнения.
Нужно создать документ на определенную дату и для определенной организации, которые вводит пользователь
Выходит ошибка Поле объекта не обнаружено (ДатаКорректировки)
{ВнешняяОбработка.ОбнулитьОстатки.Форма.Форма.Форма(5)}:    Док.Дата = Объект.ДатаКорректировки;
{ВнешняяОбработка.ОбнулитьОстатки.Форма.Форма.Форма(22)}:    СоздатьДокументНаСервере();

Вот собственно текст
Процедура СоздатьДокументНаСервере()
    Док = Документы.ОперацияБух.СоздатьДокумент();
    Док.Дата = Объект.ДатаКорректировки;
    Док.Организация = Объект.Организация;
    Док.Комментарий = "Создана автоматически для обнуления остатков";
    Док.Содержание = "Обнуление остатков";
    Док.Ответственный = ПараметрыСеанса.ТекущийПользователь;
    Док.Записать();
КонецПроцедуры

В чём ошибка? Подскажите пожалуйста
 
 
   ДенисЧ
 
1 - 05.11.19 - 06:04
Наверное, у Объект'а нет такого поля...
   Тринадцать
 
2 - 05.11.19 - 06:09
https://download.ru/files/Lus2zmWv
скрин формы
Дату вводит пользователь
   Курцвейл
 
3 - 05.11.19 - 06:10
(2) ДатаКорректировки это реквизит формы, а не объекта
   Курцвейл
 
4 - 05.11.19 - 06:11
Док.Дата = ДатаКорректировки;
   Курцвейл
 
5 - 05.11.19 - 06:11
Либо перенести ДатаКорректировки в реквизиты обработки
   Тринадцать
 
6 - 05.11.19 - 06:12
(4) - Спасибо! помогло)))
   Тринадцать
 
7 - 05.11.19 - 08:16
Еще один вопросик)
Теперь нужно заполнить созданный документ Операция остатками по счету 10 и списать их на 94. Результат запроса не получается подставить в документ
кидаю весь код 
    Док = Документы.ОперацияБух.СоздатьДокумент();
    Док.Дата = ДатаКорректировки;
    Док.Организация = НаименованиеОрганизации;
    Док.Комментарий = "Создана автоматически";
    Док.Содержание = "Обнуление остатков";
    Док.Ответственный = ПараметрыСеанса.ТекущийПользователь;
            Док.Записать();
    
     Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
       Проводки.Отбор.Регистратор.Установить(Док.Ссылка);
       
           //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    // Данный фрагмент построен конструктором.

    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
        |    ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток,
        |    ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток,
        |    ХозрасчетныйОстатки.Субконто2 КАК ДокументОснование,
        |    ХозрасчетныйОстатки.Субконто3 КАК Склад
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&Счет), , Организация = &Организация) КАК ХозрасчетныйОстатки
        |ГДЕ
        |    ХозрасчетныйОстатки.КоличествоОстаток > 0";
    
    Запрос.УстановитьПараметр("Дата", Док.Дата);
    Запрос.УстановитьПараметр("Организация", Док.Организация);
    Запрос.УстановитьПараметр("Счет", СчетУчета);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Проводка = Проводки.Добавить();
        Проводка.Регистратор = Док.Ссылка;
        Проводка.Организация = Док.Организация;
        Проводка.Период = Док.Дата;
        Проводка.СчетДт = "94";
        Проводка.СчетКт = СчетУчета;
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Номенклатура", ВыборкаДетальныеЗаписи.Номенклатура);
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Субконто2", ВыборкаДетальныеЗаписи.ДокументОснование);
        БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Субконто3", ВыборкаДетальныеЗаписи.Склад);
        Проводка.Сумма = Док.СуммаОстаток;
        Проводка.КоличествоКт = Док.КоличествоОстаток;
        Проводки.Записать();
    КонецЦикла;
   Тринадцать
 
8 - 05.11.19 - 08:18
подозреваю, что ошибка здесь
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Номенклатура", ВыборкаДетальныеЗаписи.Номенклатура);

пробовала заменить на 
    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Номенклатура", ВыборкаДетальныеЗаписи.Номенклатура);
 
выдает ошибку 
Поле объекта не обнаружено (Субконто1)
{ВнешняяОбработка.ОбнулитьОстатки.Форма.Форма.Форма(47)}:        Проводка.СубконтоКт.Субконто1 = ВыборкаДетальныеЗаписи.Номенклатура;
{ВнешняяОбработка.ОбнулитьОстатки.Форма.Форма.Форма(68)}:    СоздатьДокументНаСервере();
   catena
 
9 - 05.11.19 - 08:35
Во-первых, счет - это не строка: Проводка.СчетДт = "94"
Во-вторых, если найти в СП метод СоздатьНаборЗаписей(), то можно даже увидеть пример.
   Тринадцать
 
10 - 05.11.19 - 08:43
Да, вы правы про счет, заменила на 
Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("94");
   Тринадцать
 
11 - 05.11.19 - 08:43
Вот так заработало)
Проводка = Проводки.Добавить();
        Проводка.Регистратор = Док.Ссылка;
        Проводка.Организация = Док.Организация;
        Проводка.Период = КонецДня(Док.Дата);
        Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("94");
        Проводка.СчетКт = СчетУчета;
        Проводка.СубконтоКт.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        Проводка.СубконтоКт.Партии = ВыборкаДетальныеЗаписи.ДокументПартии;
        Проводка.СубконтоКт.Склады = ВыборкаДетальныеЗаписи.Склад;
        Проводка.Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток;
        Проводка.КоличествоКт = ВыборкаДетальныеЗаписи.КоличествоОстаток;
        
        Проводки.Записать();
   Тринадцать
 
12 - 05.11.19 - 08:44
но теперь не подставляет в самом документе Сумму операции

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.