Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0
Все привет, подскажите опытные программисты как реализовать мне такую ситуацию есть файл ексел из него происходит импорт данных в документ 1с 8.1 вот код его, в екселе появилась новая колонка в которой указан номер дисконта это число 13 значное, но я не могу добиться его импорта именно этого числа в документ, все импортируется кроме данной колонки, мне удалось удалось добиться поиском по реквизиту в справочнике информационных карты добавить такую строку при отладке и наведении на неё мне отображается владелец карты, но как мне сделать что бы данная информация переносилась в сам документ я не пойму. Код
Процедура Загрузить(ПутьКФайлу, КоличСтрок, ЭлементыФормы) Экспорт Для каждого строка Из Соответствия Цикл строка.ТипРеквизитаТЧДока = ТипыРеквизитов.Получить(строка.РеквизитТЧДока); КонецЦикла;
СтрокаДляВыполнения = "ВспомогательныйРеквизит = Документы." + Документ.<a class="glossary-term" href="http://forum-1c.ru/index.php?topic=26437.0" title="Метаданными в 1С:Предприятии называют данные, которые описывают то, как должны быть представлены данные. То есть, это структура объектов их представления (формы), реквизиты, различные модули, ...">Метаданные</a>().Имя + ".ПолучитьФормуНовогоДокумента();"; Выполнить(СтрокаДляВыполнения); ВспомогательныйРеквизит.Открыть();
ДокЭксель = ПолучитьCOMОбъект(ПутьКФайлу);
счСтрок = 2; Пока счСтрок <= КоличСтрок Цикл Выполнить("ЗагружаемаяТЧ = ВспомогательныйРеквизит.ДокументОбъект." + ЭлементыФормы.ТабличныеЧастиДока.ТекущиеДанные.НаименованиеТЧ + ";"); СтрокаТЧ = ЗагружаемаяТЧ.Добавить(); счКолонок = 1; Для каждого строка Из Соответствия Цикл Если строка.РеквизитТЧДока <> "" Тогда Если строка.ТипРеквизитаТЧДока <> "" Тогда
СтрокаТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(КодМой); СтрокаТЧ.ЕдиницаИзмерения = СтрокаТЧ.Номенклатура.БазоваяЕдиницаИзмерения; СтрокаТЧ.ДисконтнаяКарта = Справочники.ИнформационныеКарты.НайтиПоРеквизиту("КодКарты",КодКарты);// это то что мне удалось сделать //ПриИзмененииНоменклатурыТабЧасти(СтрокаТЧ, ЭтотОбъект); //ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТЧ, ДокументОбъект, "грн");
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0
Ок попробую по частям все выложить есть файл эксель 5 столбцов первый это код товара, второй это цена, третий это количество, четверты это сумма и последний это код дисконтной карты 13ти значное число эта часть вроде работает
Процедура Загрузить(ПутьКФайлу, КоличСтрок, ЭлементыФормы) Экспорт Для каждого строка Из Соответствия Цикл строка.ТипРеквизитаТЧДока = ТипыРеквизитов.Получить(строка.РеквизитТЧДока); КонецЦикла;
СтрокаДляВыполнения = "ВспомогательныйРеквизит = Документы." + Документ.<a class="glossary-term" href="http://forum-1c.ru/index.php?topic=26437.0" title="Метаданными в 1С:Предприятии называют данные, которые описывают то, как должны быть представлены данные. То есть, это структура объектов их представления (формы), реквизиты, различные модули, ...">Метаданные</a>().Имя + ".ПолучитьФормуНовогоДокумента();"; Выполнить(СтрокаДляВыполнения); ВспомогательныйРеквизит.Открыть();
ДокЭксель = ПолучитьCOMОбъект(ПутьКФайлу);
счСтрок = 2; Пока счСтрок <= КоличСтрок Цикл Выполнить("ЗагружаемаяТЧ = ВспомогательныйРеквизит.ДокументОбъект." + ЭлементыФормы.ТабличныеЧастиДока.ТекущиеДанные.НаименованиеТЧ + ";"); СтрокаТЧ = ЗагружаемаяТЧ.Добавить(); счКолонок = 1; Для каждого строка Из Соответствия Цикл Если строка.РеквизитТЧДока <> "" Тогда Если строка.ТипРеквизитаТЧДока <> "" Тогда
//Сообщить("длина " + СтрДлина(КодМой)); Если СтрДлина(КодМой) = 1 Тогда КодМой = "0000"+КодМой; ИначеЕсли СтрДлина(КодМой) = 2 Тогда КодМой = "000"+КодМой; ИначеЕсли СтрДлина(КодМой) = 3 Тогда КодМой = "00"+КодМой; ИначеЕсли СтрДлина(КодМой) = 4 Тогда КодМой = "0"+КодМой; КонецЕсли;
Дальше я дохожу до этой части кода, в которой я добавил СтрокаТЧ.ДисконтнаяКарта = Справочники.ИнформационныеКарты.НайтиПоРеквизиту("КодКарты",КодКарты); при отладке я навожу на информационные карты и у меня высвечивается человек его ФИО владельца карты но как мне в следующей части кода закинуть его в документ 1с
СтрокаТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(КодМой); СтрокаТЧ.ЕдиницаИзмерения = СтрокаТЧ.Номенклатура.БазоваяЕдиницаИзмерения; СтрокаТЧ.ДисконтнаяКарта = Справочники.ИнформационныеКарты.НайтиПоРеквизиту("КодКарты",КодКарты);// это то что мне удалось сделать //ПриИзмененииНоменклатурыТабЧасти(СтрокаТЧ, ЭтотОбъект); //ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТЧ, ДокументОбъект, "грн");
после этого идет как я понимаю часть кода импорта строк из файла эксель в 1с, вот мне нужно разобраться как мне записать строкаТЧ. ДисконтнаяКарта документ реализации товаров и услуг, куда уже пишутся все 4 столбца из файла эксель, но не импортируется 5ый столбец
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!