С Новым годом! Форум программистов, компьютерный форум, киберфорум
1С: Администрирование и интеграция
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
3 / 3 / 0
Регистрация: 07.09.2021
Сообщений: 76

Выгрузка данных из файла CSV в табличную часть документа 1с

25.10.2021, 16:20. Показов 4793. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Не могу разобраться с кодом, что нет так. Код написан в общем модуле. подскажите пжл. Необходимо загрузить в документ Поступление товаров данные из CVS файла, содержащий наименование товара, количество, цену и стоимость. 1с 8.3

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Процедура ЗагрузитьНаСервере(ПутьКФайлу) Экспорт
    // Вставить содержимое обработчика.
    Док = Новый ТекстовыйДокумент ();
    Док.Прочитать(ПутьКФайлу);
    Для А=1 По Док.КоличествоСтрок() Цикл
        Строка = Док.ПолучитьСтроку(А);
        Массив = СтрРазделить (Строка, ";");
        Наименование = Массив [0];
        Количество = Массив [1];
        Цена = Массив [2];
        Стоимость = Массив [3];
        НовыйДокПоступления=Документы.ПоступлениеТоваров.СоздатьДокумент();
        НовыйДокПоступления.Дата=ТекущаяДата ();
        НоваяСтрокаТЧ=НовыйДокПоступления.Товары.Добавить();
        НоваяСтрокаТЧ.Номенклатура=Наименование;
        НоваяСтрокаТЧ.Количество=Количество;
        НоваяСтрокаТЧ.Цена=Цена;
        НоваяСтрокаТЧ.Стоимость=Стоимость;
        НовыйДокПоступления.Записать();
        
    КонецЦикла;
КонецПроцедуры
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2021, 16:20
Ответы с готовыми решениями:

Перенос данных из справочника в табличную часть формы документа
Здравствуйте. Создаю документ в конфигурации Бухгалтерия предприятия, редакция 2.0 (2.0.43.6) на платформе 1С:Предприятие 8.2...

Перенос данных из табличной части документа в табличную часть обработки
Помогите реализовать. В общем у меня есть документ ЗаявкаНаРейс, в нем есть табличная часть Маршрут(поля: город, область, улица), есть...

Табличная Часть Документа В Табличную Часть Другого Документа.
Есть документ "служебная записка" с ТЧ товары...нужно при заполнении нового документа "заказ" в ТЧ копировать товары служебной...

14
Модератор
Эксперт 1С
 Аватар для Yulunga
4131 / 939 / 264
Регистрация: 22.04.2013
Сообщений: 6,542
Записей в блоге: 1
25.10.2021, 16:37
Цитата Сообщение от Евген357 Посмотреть сообщение
НовыйДокПоступления=Документы.Поступлени еТоваров.СоздатьДокумент();
НовыйДокПоступления.Дата=ТекущаяДата ();
за цыкл сверху

Цитата Сообщение от Евген357 Посмотреть сообщение
НовыйДокПоступления.Записать();
зацыкл снизу
0
61 / 39 / 24
Регистрация: 24.09.2017
Сообщений: 170
25.10.2021, 16:53
Цитата Сообщение от Евген357 Посмотреть сообщение
НоваяСтрокаТЧ.Номенклатура=Наименование;
Ну и этот шедевр нужно изменить
НоваяСтрокаТЧ.Номенклатура=Справочники.Н оменклатура.НайтиПоНаименованию(Наименов ание,Истина).Ссылка;

Добавлено через 5 минут
И этой строки невижу в цикле
НоваяСтрокаТЧ= НовыйДокПоступления.ТабличнаяЧасть1.Доба вить();
0
3 / 3 / 0
Регистрация: 07.09.2021
Сообщений: 76
26.10.2021, 20:29  [ТС]
Все норм работает, но только не подставляет номенклатуру. Пустые строки. Может файл csv не такой.
0
61 / 39 / 24
Регистрация: 24.09.2017
Сообщений: 170
27.10.2021, 09:23
Покажи код что написал
0
3 / 3 / 0
Регистрация: 07.09.2021
Сообщений: 76
27.10.2021, 19:41  [ТС]
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Процедура ЗагрузитьНаСервере(ПутьКФайлу) Экспорт
    // Вставить содержимое обработчика.
    Док = Новый ТекстовыйДокумент ();
    Док.Прочитать(ПутьКФайлу);
    НовыйДокПоступления=Документы.ПоступлениеТоваров.СоздатьДокумент();
    НовыйДокПоступления.Дата=ТекущаяДата ();
    Для А=1 По Док.КоличествоСтрок() Цикл
        Строка = Док.ПолучитьСтроку(А);
        Массив = СтрРазделить (Строка, ";");
        Наименование = Массив [0];
        Количество = Массив [1];
        Цена = Массив [2];
        Стоимость = Массив [3];
        НоваяСтрокаТЧ=НовыйДокПоступления.Товары.Добавить();
        НоваяСтрокаТЧ.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(Наименование, Истина).Ссылка;
        НоваяСтрокаТЧ.Количество=Количество;
        НоваяСтрокаТЧ.Цена=Цена;
        НоваяСтрокаТЧ.Стоимость=Стоимость;
    КонецЦикла;
    НовыйДокПоступления.Записать ();
КонецПроцедуры
Добавлено через 1 минуту
volodya334455, Пробывал вот эту строку писать еще так:
1C
1
НоваяСтрокаТЧ.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(Наименование);
И так:
1C
1
НоваяСтрокаТЧ.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(Наименование).Ссылка;
0
61 / 39 / 24
Регистрация: 24.09.2017
Сообщений: 170
27.10.2021, 22:30
Так посмотри что у тебя в наименовании находится.
Сразу как ты получил из Массива это самое наименование
Например так в своем коде исправь:
1C
1
2
3
4
.......
Наименование = Массив [0];
Сообщить("("+Наименование+")");
.......
Или Может справочник называется не "Номенклатура" а как-то иначе (тот с которого ты хочешь найти)
0
3 / 3 / 0
Регистрация: 07.09.2021
Сообщений: 76
28.10.2021, 05:52  [ТС]
volodya334455, Выдает нелепицу из символов. Видимо с файлом csv что-то не так. Я создавал его по рекомендациям из интернета через блокнот
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4131 / 939 / 264
Регистрация: 22.04.2013
Сообщений: 6,542
Записей в блоге: 1
28.10.2021, 07:07
Евген357, попробуй сохранить СВОЙ ексель файл простенький в цээсвэ и посмотреть, что там в нём очутится
Миниатюры
Выгрузка данных из файла CSV в табличную часть документа 1с  
0
3 / 3 / 0
Регистрация: 07.09.2021
Сообщений: 76
28.10.2021, 09:05  [ТС]
Yulunga, не получится. Эксель не лицензионный. Если я сейчас открываю в Экселе, созданный мной через блокнот CSV-файл, то в наименовании те же символы, что и выдает 1с благодаря
1C
1
Сообщить("("+Наименование+")");
Добавлено через 2 минуты
Yulunga, мне кажется сам код написан правильно, просто файл CSV бодяжный: не совпадают какие-то параметры.
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
28.10.2021, 09:21
дык узнай какая кодировка у твоего csv и задай её вторым параметром в Док.Прочитать
0
3 / 3 / 0
Регистрация: 07.09.2021
Сообщений: 76
28.10.2021, 10:42  [ТС]
Еще вопрос в этой же теме. Как мне связать поле поставщик, созданное на форме обработки, с реквизитом документа ПоступлениеТоваров? Необходимо, чтобы бы выбранный поставщик на форме обработки поставлялся в создаваемый этой обработкой документ ПоступлениеТоваров
0
61 / 39 / 24
Регистрация: 24.09.2017
Сообщений: 170
28.10.2021, 12:06
Аналогично же
1C
1
2
3
4
5
НовыйДокПоступления.Дата=ТекущаяДата ();
 
НовыйДокПоступления.Поставщик=ЭтаФорма.Поставщик;
//или даже так
НовыйДокПоступления.Поставщик=Поставщик;
0
3 / 3 / 0
Регистрация: 07.09.2021
Сообщений: 76
28.10.2021, 12:33  [ТС]
volodya334455, Не получается. Код находится в общем модуле
0
61 / 39 / 24
Регистрация: 24.09.2017
Сообщений: 170
28.10.2021, 14:42
Цитата Сообщение от Евген357 Посмотреть сообщение
volodya334455, Не получается. Код находится в общем модуле
Извини, что не угадал что "Код находится в общем модуле"
В таком случае (если я правильно угадываю) код из общего модуля ты всеравно вызываешь из модуля своей Обработки
Примерно так:
НазваниеОбщегоМодуля.НазваниеПроцедурыОб щегоМодуля(Парам1,парам2,Парам3....)
Тогда передай еще одним из параметров Поставщика, и тогда сможешь использовать его так как я написал:
НовыйДокПоступления.Поставщик=Поставщик;

Добавлено через 18 минут
Цитата Сообщение от Евген357 Посмотреть сообщение
Процедура ЗагрузитьНаСервере(ПутьКФайлу) Экспорт
Только сейчас увидел слово "Экспорт" в названии процедуры. Это должно было натолкнуть на то что код находится в одном из общих модулей. Но на эту строку с названием процедуры я обычно не обращаю внимания (так как название процедур каждый прогер называет как ему заблагоразсудится- в меру своей распущенности. Встречал например такую НачинаетТр-сяСНДС()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2021, 14:42
Помогаю со студенческими работами здесь

Заполнить табличную часть одного документа из другого документа
здравствуйте! У меня есть документа оплата заказа, в нём есть табличная часть, которая загружается из документа расходная и реквизит...

1С 8.0 Добавление в табличную часть документа
Конструкция: Доставка = Документы.Доставка.СоздатьДокумент(); Доставка.ЗаказПокупателя.Добавить(); ...

Программно заполнить Табличную часть документа
Написал процедуру, но она заполняет только теми данные что напишу в самом коде, то есть если пишу НоваяСтрока.Сотрудник =...

Заполнить табличную часть документа 1с 8.3 из справочника
Здравствуйте,делаю курсовую. 3 дня рылась в интернете, пробовала варианты, но не получается в силу незнания Есть справочник...

Данные из справочника в табличную часть документа
Здравствуйте. Ситуация следующая: Существует справочник "Маршруты" с реквизитами ПунктЗагрузки и ПунктРазгрузки, которые заполняются из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru