Имя: Пароль:
1C
1С v8
Поле объекта не обнаружено
0 Тринадцать
 
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)}:    СоздатьДокументНаСервере();
9 catena
 
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
но теперь не подставляет в самом документе Сумму операции
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.