#1 23.03.07 01:35
[1С need help] как указать счет в програмно созданном расходнике?
1С v7.7
Конфигурация: Комплексная конфигурация 4.5
Как указать счет в програмно созданном расходном кассовом ордере (РКО)?
В комплексной конфигурации, в модуле документа РКО на поле ввода "Счет" назначена вот такая процедура:
Код::
Процедура ПриИзмененииСчета() глПриВыбореБухСчета(Контекст); КонецПроцедуры
Процедура "глПриВыбореБухСчета(Контекст)" находится в глобальном модуле:
Код::
Процедура глПриВыбореБухСчета(Конт, ОбновлятьПодписи = 1, ТолькоПодписи = 0) Экспорт
Если (ОбновлятьПодписи = 1)
и (ТипЗначенияСтр(Конт.Счет) = "Счет") Тогда
// установим заголовок (подпись) счета и субконто.
Конт.Форма.ТекстСчет.Заголовок(Конт.Счет.Наименование);
Для Номер = 1 По 3 Цикл
Конт.Форма.ПолучитьАтрибут("ТекстВидСубконто"+Номер).Заголовок(глПредставлениеВидаСубконто(Конт.Счет, Номер));
КонецЦикла;
КонецЕсли;
Если ТолькоПодписи = 0 Тогда
глУстановитьТипВидРеквизита(Конт, "Счет", "Счет");
Для Номер = 1 По 3 Цикл
глУстановитьТипВидРеквизита(Конт, "Субконто"+Номер, глПолучитьТипСубконто(Конт.Счет, Номер));
КонецЦикла;
КонецЕсли;
КонецПроцедурыРеквизит шапки в РКО - "Счет" имеет неопределенный тип значения
Создаю програмно документ:
Код::
...
...
РКО = СоздатьОбъект("Документ.РКО");
РКО.Новый();
РКО.ДатаДок = ДатаДок;
РКО.Фирма = Спр.ТекущийЭлемент();
РКО.Касса = СпрКасса.ТекущийЭлемент();
РКО.ДвижениеДенежныхСредств = СпрДвижениеДС.ТекущийЭлемент();
РКО.Валюта = СпрВалюта.ТекущийЭлемент();
РКО.КодОперации = глКО.Прочее;
РКО.Сумма = Уч1Сумма;
РКО.Записать();Как мне указать счет програмно?
Написать что то типа:
Код::
РКО.Счет = [Значение];
Не работает :(
После счета, нужно будет указать ещё его субконто, надеюсь приблизительно одинаково он указывается
Надеюсь изложил проблему доступно
Заранее благодарен.
Исправлено gigobiZ (23.03.07 01:36)
Offline
#2 23.03.07 16:47
Re: [1С need help] как указать счет в програмно созданном расходнике?
Уже не помню, что там в комплексной намутила фирма 1С....
Смысл такой. Если на форме есть какой-либо реквизит с типом "Неопределенный", то для него выполняется метод
Форма.Счет.НазначитьТип("Счет");
или
Форма.Счет.НазначитьТип("Счет.Основной");
После этого ему можно присваивать значение
Счет = СчетПоКоду("62.1",Основной);
Это для модуля формы.
Для документа (конкретно в твоем случае) надо сделать так:
РКО.НазначитьТип("Счет","Счет");
или
РКО.НазначитьТип("Счет","Счет.Основной");
потом назначить ему значение
РКО.Счет = СчетПоКоду("60.1",Основной);
По субконто, тут хитрее надо :)
Пусть у тебя Реквизиты для субконто называются Субконто1,Субконто2,Субконто3
Тогда код будет таким:
РКО.НазначитьТип("Субконто1", СчетПоКоду("60.1",Основной).ВидСубконто(1));
РКО.НазначитьТип("Субконто2", СчетПоКоду("60.1",Основной).ВидСубконто(2));
РКО.НазначитьТип("Субконто3", СчетПоКоду("60.1",Основной).ВидСубконто(3));
Типы установлены. Теперь можешь присваивать :)
Offline

