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

Создание Приходной накладной и счета из таблицы значений

Автор Александр Ходыкин, 12 июл 2016, 15:32

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

Александр Ходыкин

Добрый день гуру.
Есть следующий вопрос.
Имеется табличка см. вложение рисунок tab она в Ексель. Написал обработку загружающую ее в таблицу значений в 1С(Работаю с конфой Торговля Склад ред 8.7)см.вложение ob..На таблицы гарантийные работы и монтажные работы не обращайте внимание, там все также, просто таблицы для загрузки находятся на других листах Ексель(это я тоже прописал).Подскажите пожалуйста  или приведите пример как мне на основании этих данных создать документы в 1С: приходная накладная и счет.Для прихода будет использоваться цена ГСК,а для счет цена МсД, в табличных частях в разделе товар будет содержать "оплата сервис" - 1 шт все цены указаны в таблице без НДС.:dfbbdrfb::dfbbdrfb:

Mitay_D

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

VivaBrunko


Александр Ходыкин

Mitay_D, Понял...Уже сделал..получилось и еще пара вопросов имеется....
как задать при создании приходной признак закупка, а не возврат Сделал вот так:

НоваяПриходнаяНакладная=СоздатьОбъект("Документ.ПриходнаяНакладная");
НоваяПриходнаяНакладная.ПризнакНакладной=Перечисление.ПризнПрихНакл.Закупка;
но не катит..

И второй вопрос как в приходе занести из таблицы Эксель поле заказчик в поле клиент(оно выбирается по справочнику)Я пробовал вот так:

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

где ТаблицаЗначенийС.Заказчик - это значения заказчика внесенного в таблицу из эксель..Это при условии что наименование контров в экселе и в справочнике одинаково 
Добавлено: 14 июл 2016, 11:03


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

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

ТаблицаПриходнойНакладной.НоваяСтрока();
ТаблицаПриходнойНакладной.Товар=Усл.ТекущийЭлемент();
ТаблицаПриходнойНакладной.Количество="1";
//ТаблицаПриходнойНакладной.Единица=
ТаблицаПриходнойНакладной.Цена=ТаблицаЗначенийС.ЦенГСК;
ТаблицаПриходнойНакладной.Сумма=Число(ТаблицаЗначенийС.ЦенГСК)*1.18*ТаблицаПриходнойНакладной.Количество;
 
Если  ТаблицаПриходнойНакладной.КоличествоСтрок()>0 Тогда
НоваяПриходнаяНакладная.Новый();
НоваяПриходнаяНакладная.НомерДок=ТаблицаЗначенийС.НомСчет;
НоваяПриходнаяНакладная.ДатаДок=ТаблицаЗначенийС.ДатСчет;
//НоваяПриходнаяНакладная.Фирма=
//НоваяПриходнаяНакладная.Договор=
//НоваяПриходнаяНакладная.Клиент=
НоваяПриходнаяНакладная.МожноПроводить=1;   

КонецЕсли;

ТаблицаПриходнойНакладной.ВыбратьСтроки();
Пока  ТаблицаПриходнойНакладной.ПолучитьСтроку()>0 Цикл

НоваяПриходнаяНакладная.НоваяСтрока();
НоваяПриходнаяНакладная.Товар = ТаблицаПриходнойНакладной.Товар;
НоваяПриходнаяНакладная.Количество = ТаблицаПриходнойНакладной.Количество;
НоваяПриходнаяНакладная.Единица = ТаблицаПриходнойНакладной.Единица;
НоваяПриходнаяНакладная.Коэффициент = 1;
НоваяПриходнаяНакладная.Цена = ТаблицаПриходнойНакладной.Цена;
НоваяПриходнаяНакладная.Сумма = ТаблицаПриходнойНакладной.Сумма;
НоваяПриходнаяНакладная.СтавкаНДС = Перечисление.ЗначенияНДС.НДС18;
НоваяПриходнаяНакладная.НДС = ТаблицаПриходнойНакладной.Сумма/118*18;
НоваяПриходнаяНакладная.Всего = ТаблицаПриходнойНакладной.Сумма;
   
КонецЦикла;   


НоваяПриходнаяНакладная.Записать();
//Провести();
Сообщить("Создана Приходная Накладная № " + ТаблицаЗначенийС.НомСчет + " от " + ТаблицаЗначенийС.ДатСчет);
КонецЦикла;

Александр Ходыкин

С таблицами и признаком разобрался...:zebzdr:
Удалось сделать на основании ТЗ приходную накладную и Счет...Может кто знает как быстро из конфигуратора создать расходную(на основании Счета) и далее из накладной -  с/Ф..При условии что данные в счете все есть и они верны...Можно это как то сделать не прописывая все значения ссылаясь на док основание?????

Теги:

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

Рейтинг@Mail.ru

Поиск