Есть некая система которая формирует таблицу xls. Две колонки, в первой ЕДРПОУ контрагента во второй Сумма с НДС.
Нужно втянуть его в 1С и сформировать акты. Акты с одинаковой услугой но разной суммой, ручками бухгалтера заносят их по пол дня.
Вот решили как-то это автоматизировать и попросили меня что-то им "придумать".
Скажу сразу, я не программист, но так сложилось что немного пришлось разбираться и простенькие обработки довелось создавать.
Реализовать решил следующим образом. Загрузка из файла в таблицу значений (заодно контроль сколько срок загружено), а дальше по кнопке "создать" создаются акты оказания услуг.
Частично все получается, данные загружаются, акты создаются, табличная часть в них заполняется НО не тянет контрагента. Я не могу сообразить как получить контрагента по коду ЕДРПОУ из таблицы значений.
Код процедуры ниже:
Процедура СоздатьАкт()
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Док = СоздатьОбъект("Документ.ОказаниеУслуг");
Док.Новый();
Док.Фирма = глВосстановитьЗначение(,"БазФирма");
Спр = СоздатьОбъект("Справочник.Контрагенты");
Док.Контрагент = Спр.ПолучитьЗначение(ТЗ.НомерСтроки,1);
Док.Касса = глВосстановитьЗначение(,"БазФирма").РС;
Док.ВидНДС = Константа.БазНДС;
Док.ВидТорговли = Перечисление.ВидыТорговли.Предоплата;
Док.СчетКонтрагента = СчетПоКоду("36.1");
Док.МестоСоставления = глВосстановитьЗначение(,"БазМестоСоставления");
Док.Автор = Пользователь;
Док.НоваяСтрока();
Док.Услуга = глПолучитьЗначениеКонстанты("АвтоАкт", "Название оказанной услуги",);
глУстановкаБазЕд(Док,Док.Услуга,Док.Услуга.БазЕдиница);
Док.Кво = "1";
Док.Коэффициент = "1";
Док.СуммаСНДС = СокрЛП(ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки,2));
Док.СуммаБезНДС = Док.СуммаСНДС/6*5;
Док.НДС = Док.СуммаСНДС - Док.СуммаБезНДС;
Док.ЦенаБезНДС = Док.СуммаБезНДС;
Док.СуммаБезСкидки = Док.СуммаБезНДС;
Док.Записать();
Сообщить("Введена новая "+Док);
КонецЦикла;
КонецПроцедуры
СпрКонтрагенты = СоздатьОбъект("Справочник.Контрагенты");
Если СпрКонтрагенты.НайтиПоРеквизиту("ЕДРПОУ",<ваш код из таблицы>,1)= 1 Тогда
текущийКонтрагент = СпрКонтрагенты.ТекущийЭлемент();
КонецЕсли;
Док = СоздатьОбъект("Документ.ОказаниеУслуг");
Спр = СоздатьОбъект("Справочник.Контрагенты");
до цикла по таблице
nysysimara @ Сегодня, 11:34
,
Очень благодарен! Все получилось.
Возможно подскажите еще как открыть журнал Оказание Услуг и перейти на последний документ по окончанию или при закрытии обработки?
Уже не нужно, разобрался. Еще раз спасибо, тему можно закрывать.
axelk @ Сегодня, 11:30
,
попробуйте:
КонтФормы = Док;
ОткрытьФорму("Журнал.ОказаниеУслуг",КонтФормы);
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua