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

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

25.10.2021, 16:20. Показов 4962. Ответов 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
4211 / 950 / 267
Регистрация: 22.04.2013
Сообщений: 6,598
Записей в блоге: 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
4211 / 950 / 267
Регистрация: 22.04.2013
Сообщений: 6,598
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru