8.х Ошибка формирования данных в форме 1С 8.1

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Дмитрий Игоревич, 8 май 2013.

  1. TopicStarter Overlay
    Дмитрий Игоревич
    Offline

    Дмитрий Игоревич Опытный в 1С

    Регистрация:
    11 апр 2013
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    ЕЕсть форма на ней есть поля ввода ЭлементыФормы.СубконтоДт1 и есть поле с реквизитом СтатьяДр необходимо если СтатьяДр.Код =Стр.КодСтатьи заполнить ЭлементыФормы.СубконтоДт1.Значение значением из ЭлементыФормы.СубконтоДт1.Значение равным СтатьяДр.КодСтатьи, вот код:
    Код:
    Процедура СтатьяДРПриИзменении(Элемент)
    
    
    Для каждого Стр Из ЭлементыФормы.СубконтоДт1.СписокВыбора.ВыгрузитьЗначения() Цикл
    Если Стр.КодСтатьи = СтатьяДр.КодСтатьи Тогда
    ЭлементыФормы.СубконтоДт1.Значение = Стр;
    КонецЕсли;
    КонецЦикла; 
    КонецПроцедуры
    Как это реализовать))?
  2. TopicStarter Overlay
    Дмитрий Игоревич
    Offline

    Дмитрий Игоревич Опытный в 1С

    Регистрация:
    11 апр 2013
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    Помогите пожалуйста, есть код :
    Код:
    Если ТипЗнч(ЭлементыФормы.СубконтоДт1.ТипЗначения) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств") или
    ТипЗнч(ЭлементыФормы.СубконтоДт1.ТипЗначения) = Тип("СправочникСсылка.СтатьиДоходовИРасходов") или
    ТипЗнч(ЭлементыФормы.СубконтоДт1.ТипЗначения) = Тип("СправочникСсылка.СтатьиЗатрат")
    Тогда
    
    СубконтоДт1 Это состовной тип данных который в зависимости от выбора счета выбирает, тот или инной справочник, Как правильно написать чтобы выполнялось это условие ТипЗнч(ЭлементыФормы.СубконтоДт1.ТипЗначения) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств")
  3. TopicStarter Overlay
    Дмитрий Игоревич
    Offline

    Дмитрий Игоревич Опытный в 1С

    Регистрация:
    11 апр 2013
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26

    Еще раз здравствуйте второй вопрос состоит в чем дальше он записывает в СубконтоДт1 элемент который равен КодуСтатьи, вот код (не работает)

    Спр = Вычислить(ЭлементыФормы.СубконтоДт1)
    Если Спр.НайтиПоРеквизиту("КодСтатьи",СтатьяДр.КодСтатьи,1)=1
    Тогда
    ЭлементыФормы.СубконтоДт1.ТипЗначения = Спр.ТекущийЭлемент();
    КонецЕсли;



    В чем допущена ошибка ?
  4. TopicStarter Overlay
    Дмитрий Игоревич
    Offline

    Дмитрий Игоревич Опытный в 1С

    Регистрация:
    11 апр 2013
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    Подправил до такого вида:
    Код:
    Если СчетДт.ВидыСубконто.Количество()>0 Тогда
    ТипСубк1 = СчетДт.ВидыСубконто[0].ВидСубконто.ТипЗначения;
    ЭлементыФормы.СубконтоДт1.ВыбиратьТип = ложь;
    ЭлементыФормы.СубконтоДт1.Доступность = истина;
    Если ТипСубк1.ПривестиЗначение(ЭлементыФормы.СубконтоДт1.Значение)  <> ЭлементыФормы.СубконтоДт1.Значение Тогда
    ЭлементыФормы.СубконтоДт1.Значение = ТипСубк1.ПривестиЗначение(ЭлементыФормы.СубконтоДт1.Значение);
    КонецЕсли;
    Если ЭлементыФормы.СубконтоДт1.Значение = Тип("СправочникСсылка.СтатьиЗатрат") или
    ЭлементыФормы.СубконтоДт1.Значение = Тип("СправочникСсылка.СтатьиДоходовИРасходов") или
    ЭлементыФормы.СубконтоДт1.Значение = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств")
    Тогда
    Спр = Строка((ЭлементыФормы.СубконтоДт1.Значение.СоздатьЭлемент();	   
    Если Спр.НайтиПоРеквизиту("КодСтатьи",СтатьяДр.КодСтатьи,1)=1
    Тогда
    ЭлементыФормы.СубконтоДт1 = Спр.ТекущийЭлемент();
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    Не срабатывает Спр = ЭлементыФормы.СубконтоДт1.Значение.СоздатьЭлемент(); не допру как надо сделать (
  5. TopicStarter Overlay
    Дмитрий Игоревич
    Offline

    Дмитрий Игоревич Опытный в 1С

    Регистрация:
    11 апр 2013
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    Дело в шляпе (закрываем тему), решение :
    Код:
    Процедура СтатьяДРПриИзменении(Элемент)
    Если СчетДт.ВидыСубконто.Количество()>0 Тогда
    ТипСубк1 = СчетДт.ВидыСубконто[0].ВидСубконто.ТипЗначения;
    ЭлементыФормы.СубконтоДт1.ВыбиратьТип = ложь;
    ЭлементыФормы.СубконтоДт1.Доступность = истина;
    Если ТипСубк1.ПривестиЗначение(ЭлементыФормы.СубконтоДт1.Значение)  <> ЭлементыФормы.СубконтоДт1.Значение Тогда
    ЭлементыФормы.СубконтоДт1.Значение = ТипСубк1.ПривестиЗначение(ЭлементыФормы.СубконтоДт1.Значение);
    КонецЕсли;
    Если ТипЗнч(ЭлементыФормы.СубконтоДт1.Значение) = Тип("СправочникСсылка.СтатьиЗатрат") или
    ТипЗнч(ЭлементыФормы.СубконтоДт1.Значение) = Тип("СправочникСсылка.СтатьиДоходовИРасходов") или
    ТипЗнч(ЭлементыФормы.СубконтоДт1.Значение) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств")
    Тогда
    
    Выборка = Справочники.СтатьиЗатрат.Выбрать();
    Пока Выборка.Следующий() Цикл	 
    Если Выборка.Код = СтатьяДр.КодСтатьи Тогда
    ЭлементыФормы.СубконтоДт1.Значение = Выборка.Ссылка;
    КонецЕсли;
    КонецЦикла;
    
    
    
    КонецЕсли;
    КонецЕсли;
    
    КонецПроцедуры
    
  6. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    а теперь упрощаем :)
    поле СубконтоДт1 связано с одноименным реквизитом, ведь так?
    и еще - вы пытаетесь установить в СубконтоДт1 статью затрат вне зависимости от того, статья затрат там или доходов и расходов иди ддс
    имеем:
    Код:
    Процедура СтатьяДРПриИзменении(Элемент)
    Если СчетДт.ВидыСубконто.Количество()>0 Тогда
    ТипСубк1 = СчетДт.ВидыСубконто[0].ВидСубконто.ТипЗначения;
    ЭлементыФормы.СубконтоДт1.ВыбиратьТип = ложь;
    ЭлементыФормы.СубконтоДт1.Доступность = истина;
    Если ТипСубк1.ПривестиЗначение(СубконтоДт1)  <> СубконтоДт1 Тогда
    СубконтоДт1 = ТипСубк1.ПривестиЗначение(СубконтоДт1);
    КонецЕсли;
    Если ТипЗнч(СубконтоДт1) = Тип("СправочникСсылка.СтатьиЗатрат") Тогда
    СубконтоДт1 = Справочники.СтатьиЗатрат.НайтиПоРеквизиту("КодСтатьи", СтатьяДр.КодСтатьи);
    ИначеЕсли ТипЗнч(СубконтоДт1) = Тип("СправочникСсылка.СтатьиДоходовИРасходов") Тогда
    СубконтоДт1 = Справочники.СтатьиДоходовИРасходов.НайтиПоРеквизиту("КодСтатьи", СтатьяДр.КодСтатьи);
    ИначеЕсли ТипЗнч(СубконтоДт1) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств") Тогда
    СубконтоДт1 = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоРеквизиту("КодСтатьи", СтатьяДр.КодСтатьи);
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    
  7. TopicStarter Overlay
    Дмитрий Игоревич
    Offline

    Дмитрий Игоревич Опытный в 1С

    Регистрация:
    11 апр 2013
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    Точно! Справочники.СтатьиЗатрат.НайтиПоРеквизиту("КодСтатьи", СтатьяДр.КодСтатьи); , я пробовад, пробавл а тут бац и получилось)))! спасибо)))!!!

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