Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
31 мая 2024, 21:19

Ошибка при создании счета на оплату из данных ТЗ.

Автор Ильнар, 01 мар 2019, 11:59

0 Пользователей и 1 гость просматривают эту тему.

Ильнар

Делаю внешнюю обработку в 1С:Предприятие 8.3 для Бухгалтерия КОРП 3.0.
Пишу код преимущественно для работы на тонком клиенте. Я формирую счета на оплату по данным из Excel. Excel загрузил на форму, однако при формировании счетов на сервере, договор на шапке притягивается жестко, без возможности последующего изменения. Подскажите решение, если знаете. Спасибо!
Изображение принт скрин

&НаСервере
Процедура СозданиеСчетовНаСервере(Номенклатура)
ТаблицаСчетов1 = ТаблицаСчетов.Выгрузить();
ОбщееКоличество = 0;
ЗаписанныеСчета = 0;
ОшибкиВСтроках = 0;
НеверныйДоговор = 0;
Для каждого Строка Из ТаблицаСчетов1 Цикл
ОбщееКоличество = ОбщееКоличество + 1;
Если НЕ ЗначениеЗаполнено(Строка.Сумма) И НЕ ЗначениеЗаполнено(Строка.НомерДоговора) Тогда
ОшибкиВСтроках = ОшибкиВСтроках + 1;
Продолжить;
Иначе
Договор = Справочники.ДоговорыКонтрагентов.НайтиПоРеквизиту("Номер", ПарсингСтрокиДоговора(Строка.НомерДоговора));
Если НЕ ЗначениеЗаполнено(Договор) Тогда
НеверныйДоговор = НеверныйДоговор + 1;
Продолжить; 
Иначе
//Создание счета на оплату
Форм = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
ДанныеФормы = Форм.ЭтотОбъект;

//Заполнение шапки и подвала
ЗначенияФормы = Новый Структура;
ЗначенияФормы.Вставить("Дата", КонецДня(КонецМесяца(ТекущаяДата())));
ЗначенияФормы.Вставить("Контрагент", Договор.Владелец.Ссылка);
ЗначенияФормы.Вставить("ДоговорКонтрагента", Договор.Ссылка);
ЗначенияФормы.Вставить("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001"));
ЗначенияФормы.Вставить("СуммаВключаетНДС", Истина);
ЗначенияФормы.Вставить("Реализация", Истина);
ЗначенияФормы.Вставить("ВедетсяУчетНДСПоФЗ335", Истина);
ЗначенияФормы.Вставить("ПокупательНалоговыйАгентПоНДС", Ложь);
ЗначенияФормы.Вставить("Комментарий", Строка.Примечание);
ЗначенияФормы.Вставить("Ответственный", ПараметрыСеанса.ТекущийПользователь);
ЗаполнитьЗначенияСвойств(ДанныеФормы, ЗначенияФормы);

//Заполнение таблицы
СтрокаТоварыИУслуги = ДанныеФормы.Товары.Добавить();
СтрокаТоварыИУслуги.Номенклатура = Номенклатура.Ссылка;
СтрокаТоварыИУслуги.Содержание = Номенклатура.Наименование
                                 + " " + Формат(ТекущаяДата(),"ДФ=ММММ")
                                 + " " + ПарсингСтрокиДоговора(Строка.НомерДоговора);
СтрокаТоварыИУслуги.Количество = 1;
СтрокаТоварыИУслуги.Цена = Строка.Сумма;
СтрокаТоварыИУслуги.Сумма = Строка.Сумма;
СтрокаТоварыИУслуги.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;

//Автоматический расчёт данных в таблице
ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуТабЧасти(СтрокаТоварыИУслуги,);
ОбработкаТабличныхЧастейКлиентСервер.РассчитатьСуммуНДСТабЧасти(СтрокаТоварыИУслуги,);

//Запись
Форм.Записать();
ЗаписанныеСчета = ЗаписанныеСчета + 1;
  КонецЕсли;
КонецЕсли;
КонецЦикла;

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

Похожие темы (5)

Рейтинг@Mail.ru

Поиск