Обработка «Загрузка данных из табличного документа». Пример настроек и использование.

Опубликовал Петр Петров (sabob) в раздел Программирование - Инструментарий

Данный пример будет полезен программистам 1С и специалистам по «Управлению торговлей», которым необходимо автоматизировать загрузку в справочники и документы из внешних табличных документов. В частности тем, кому необходимо загрузить товары в документ «поступление товаров и услуг» из электронной накладной в формате xls.

Данный пример будет полезен программистам 1С и специалистам по «Управлению торговлей», которым необходимо автоматизировать загрузку в справочники и документы из внешних табличных документов. В частности тем, кому необходимо загрузить товары в документ «поступление товаров и услуг» из электронной накладной в формате xls.

Задача: Клиенту продавец предоставил электронную накладную в формате xls, по ней необходимо оформить поступление товаров.

Обработку можно найти диске ИТС.

Сначала нужно прогрузить справочник «Номенклатура». Выбираем «Загрузка в справочник», вид справочника «Номенклатура». На вкладке табличный документ, загружаем файл накладной из xls. На вкладке настройка, отмечаем нужные нам реквизиты: «Код», «Наименование», «Артикул». Выбираем для них режим загрузки «Искать» и сопоставляем номера колонок с табличным документом. Чтобы включить ручную нумерацию колонок, необходимо нажать на кнопку «нумерация колонок».

Отметка «поле поиска», которая напротив «Кода», предотвращает задвоение данных. То есть если, элемент с идентичным кодом, будет найден в справочнике, то новый элемент создаваться не будет, а заменятся только его реквизиты.

Для реквизита «БазоваяЕдиницаИзмерения», выбираем режим загрузки «Устанавливать» и указываем базовую единицу измерения «шт».

Особое внимание стоит обратить на загрузку реквизита «ЕдиницаХраненияОстатков», если его не загружать, то на складах не будет отображаться количество товара. Сложность в том, что эта единица хранения должна быть привязана к текущей номенклатуре. Для этого выбираем режим загрузки «Вычислять» и в колонке выражение прописываем необходимый код:

Вид номенклатуры выбирается из существующих в базе, аналогично как реквизит «БазоваяЕдиницаХранения».

Нажимаем кнопку «Загрузить».

Следующим шагом будет загрузка товаров, их количества, цены и суммы в табличную часть «Товары» документа «ПоступленияТоваровИУслуг». Для этого необходимо выбрать режим загрузки «загрузка в табличную часть». Выбрать ранее созданный документ «Поступление товаров и услуг», выбрать загрузку в табличную часть «товары».

Для номенклатуры в поле «искать по» выбираем «код», потому что в предыдущей загрузке, уникальность номенклатуры определялась по коду номенклатуры.

Реквизит «Единица Измерения» заполняется аналогично «БазовойЕдиницыИзмерения» из настроек для номенклатуры, с небольшой корректировкой кода.

Реквизит «Коэффициент» необходим, чтобы был корректный пересчет остатков на складе.

Заполнив, необходимые настройки, нажимаем кнопку «Загрузить».

См. также

Комментарии
1. Mistral81 17.07.12 18:02 Сейчас в теме
Пришлите пожалуйста данный код на почту vitaliy-ilin@mail.ru На сайте он выложен в виде изображения

Особое внимание стоит обратить на загрузку реквизита «ЕдиницаХраненияОстатков», если его не загружать, то на складах не будет отображаться количество товара. Сложность в том, что эта единица хранения должна быть привязана к текущей номенклатуре. Для этого выбираем режим загрузки «Вычислять» и в колонке выражение прописываем необходимый код:
3. Piotr (Tolpinski) 51 16.03.17 09:28 Сейчас в теме
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(ТекущиеДанные["Наименование"]);
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
ТекСпр = Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору", БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);

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