Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
1С Работа с буквами / Поправить код https://www.cyberforum.ru/ 1c-custom/ thread2398455.html
Всем добрый вечер. Написал программу, которая определяет, все ли буквы слова, стоящие на четных местах различны. Но она работает не совсем корректно, помогите поправить. Стр = ""; Если ВвестиСтроку(Стр, "Введите строку") Тогда МассивБукв = Новый Массив; Различны = Истина; Длина = СтрДлина(Стр); Поз = 1; Пока Поз < Длина Цикл ...
1С Передача параметра в функцию, как самого реквизита а не значения
Доброго времени суток, не совсем понимаю концепцию встроенного языка, но тем не менее следующий вопрос: возможно ли в функцию передать ПАРАМЕТР который будет передавать не значение реквизита а сам реквизит, например Функция Колесо(Реквизит) Объект.Реквизит = 25; КонецФункции Процедура ОкружностьКолеса()
1С Автоматическое заполнение табличной части документа из табличной части другого Добрый день. Совсем недавно начал изучать 1С и пока не могу найти решения собственной задачи) Помогите с кодом. Есть документ «Рабочий день» с табличной частью КлиентИТовар и реквизитом табличной части Доставка типа ДокументСсылка.Доставка. И вот так выглядит документ «Доставка» с табличной частью ТоварКлиента. https://www.cyberforum.ru/ 1c-custom/ thread2398206.html 1С Обработка корректировка движений https://www.cyberforum.ru/ 1c-custom/ thread2397925.html
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. Конфигурация Бухгалтерия Предприятия редакция 1.0 создал регистр накопления закупки, есть движение с поступление товаров услуг. Все работает но есть такое проблема, в документа есть кнопка "Результат проведения документа" когда пользователь нажмёт эту кнопку тогда бывает ошибка...
Остатки по складу 1С
Почему при добавлении товара через кнопку подбор остаток на складе не показывает, а при добавлении через стандартную кнопку добавить остаток выводится
1С Отпуск Как в 1с 8.3 реализовать с помощью кода отпуск https://www.cyberforum.ru/ 1c-custom/ thread2397532.html
1С Отчет о приходе и реализации https://www.cyberforum.ru/ 1c-custom/ thread2397107.html
Здравствуйте, объясните, пожалуйста, что следует выбрать и прописать в компоновке данных, чтобы в результате получить отчет в котором будет отражаться приход и реализация номенклатуры в суммовом выражении за последнюю неделю:help: В нем должна быть представлена информация в виде таблицы. В строках – "период", в колонках – "приход" и "реализация" в суммовом выражении. Также в этом отчете...
Условное оформление табличной части 1С
Подскажите, почему не работает оформление? Все параметры корректно устанавливаются, но оформления не происходит &НаКлиенте Процедура ПоискДублей(Команда) ПоискДублейНаСервере(); КонецПроцедуры &НаСервере Процедура ПоискДублейНаСервере()
1С Комплектация группы как услуги Возможно ли как-то создать группу в которую будут входить материалы услуги, например бумага, чернила и как-то их выбрать сразу же при выборе например услуги? Или как создать услугу, в которую сразу бы были включены материалы и приписать им стоимость? https://www.cyberforum.ru/ 1c-custom/ thread2395702.html 1С Подсчет переменных в Отчете https://www.cyberforum.ru/ 1c-custom/ thread2395661.html
Вообщем,хочу что бы в отчете велся подсчет полей(допустим: стоимость по товару - Задолженность перед поставщиком).
Группировка одинаковой номенклатуры 1С
Здравствуйте, объясните, пожалуйста, чайнику как реализовать для документов "Приход" и "Продажа" группировку одинаковой номенклатуры при формировании движений:help:
1С Вытянуть документ на основании Доброго времени суток! Уже писал позавчера, по этим документам, и появился небольшой нюанс https://www.cyberforum.ru/1c-custom/thread2393943.html Мне все же не нужно выводить "Отчет о розничных продажах", но на его основании создаются "ПКО", именно их мне и надо вытаскивать, я не знаю как это провернуть, пробовал разными пособами, все неккоректно Могу лишь такой код дать, запрос:... https://www.cyberforum.ru/ 1c-custom/ thread2394748.html
0 / 0 / 0
Регистрация: 04.02.2019
Сообщений: 18
0
1C 8.x

Внешняя обработка. Загрузка данных для создания заказов из CSV в 1С 8.3 - 1С - Ответ 13296916

04.02.2019, 17:10. Показов 5566. Ответов 4
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Я новичок в 1С. Нужно создать обработку, которая будет формировать заказы клиента из файла CSV.

На просторах интернета нашла такую заготовку programmist1s.ru/zagruzka-iz-csv-v-1s/ Которая, как оказалась, создана для 8.2 и в 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение Тогда
 
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
    ПараметрыРегистрации.Вставить("Наименование", "ЗагрузкаЗаказовИзВнешнегоФайла");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", "Загрузка заказов из внешнего файла");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд,
    "Загрузка заказов из внешнего файла",
    "ЗагрузкаЗаказовИзВнешнегоФайла",
    "ОткрытиеФормы",
    //<Показывать оповещение>,
    //<Модификатор>
    );
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
КонецФункции
 
Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
КонецФункции
 
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры    
 
Процедура ПриСозданииНаСервере()
    Форма= ПолучитьФорму("ФормаНовая");
    Форма.Открыть();
КонецПроцедуры
 
#КонецЕсли
В модуле новой формы скопировала код из старой (с некоторыми изменениями, вместо "ЭлементыФормы" поставила просто "Элементы", на первое конфигуратор ругался):

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Вставить содержимое обработчика.
КонецПроцедуры
 
Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    // 1c:8.2
    //ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    //ДиалогВыбора.Заголовок = "Выберите файл";
    //
    //Если ДиалогВыбора.Выбрать() Тогда
    //  ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
    //КонецЕсли;
    
    ПрочитанныйТекст = Новый ЧтениеТекста(ИмяФайла);
    СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();
    Сообщить(СтрокаТекстовогоФайла);
    Пока СтрокаТекстовогоФайла <> Неопределено Цикл
    СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();
    Сообщить(СтрокаТекстовогоФайла);
    КонецЦикла;
 
ПрочитанныйТекст.Закрыть();
    
КонецПроцедуры
 
Процедура ПрочитатьНажатие(Элемент)
    
    //очищаем таблицу и удаляем колонки 
    Таблица.Очистить();
    Таблица.Колонки.Очистить();
    Элементы.Таблица.Колонки.Очистить();
    
    // чтение файла
    ЗагружаемыйФайл = Новый ТекстовыйДокумент;
    ЗагружаемыйФайл.Прочитать(ИмяФайла);
    
    //шапка по умолчанию 1 строка, из первой строки делаем колонки таблицы
    Шапка = ЗагружаемыйФайл.ПолучитьСтроку(1);
    
    //раскладываем строку в массив
    МассивКолонок = РазложитьСтрокуВМассивПодстрок(Шапка,Разделитель);
    
    //генерируем колонки   
    Для Каждого ИмяКолонки Из МассивКолонок Цикл
        
        ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ",""); // убираем из имени колонок пробелы
        Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки);         
        НоваяКолонка = Элементы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки);
        НоваяКолонка.Данные = ИмяБезПробелов;
        
    КонецЦикла;
    
    
    Для НомерСтроки=2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл
        
        //Состояние("Обрабатывается "+Строка(Формат(?(ЗагружаемыйФайл.КоличествоСтрок()=0,0,((100*НомерСтроки)/ЗагружаемыйФайл.КоличествоСтрок())),"ЧЦ=3; ЧДЦ=0"))+" %");
        //ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break
        
        // получить строку файла с указанным номером и преобразуем её в массив
        Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки);
        МассивКолонок = РазложитьСтрокуВМассивПодстрок(Строка,Разделитель);
        НоваяСтрока = Таблица.Добавить();
        
        Если МассивКолонок.Количество() <> Таблица.Колонки.Количество() Тогда
            Сообщить("Ошибка со строкой " + Строка);
            Продолжить; // скорее всего в тексте содержит разделитель
        КонецЕсли;
        
        Для НомерКолонки = 1 по МассивКолонок.Количество() Цикл 
            //заполняем строку значениями
            ТекущееЗначение = МассивКолонок[НомерКолонки-1];
            ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя;            
            НоваяСтрока[ИмяКолонки] = ТекущееЗначение;          
        КонецЦикла;           
        
    КонецЦикла;   
    
    
 
    
КонецПроцедуры
 
// Функция "расщепляет" строку на подстроки, используя заданный 
//      разделитель. Разделитель может иметь любую длину. 
//      Если в качестве разделителя задан пробел, рядом стоящие пробелы 
//      считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//      игнорируются.
//      Например, 
//      РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов, 
//      три из которых - пустые строки, а 
//      РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
//
//  Параметры: 
//      Стр -            строка, которую необходимо разложить на подстроки. 
//                      Параметр передается по значению.
//      Разделитель -    строка-разделитель, по умолчанию - запятая.
//
//
//  Возвращаемое значение:
//      массив значений, элементы которого - подстроки
//
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",")
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока Истина Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока Истина Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции
 
 
Разделитель = ";";
Открыла обработку в тонком клиенте. Никаких ошибок не выскакивает но и ничего не происходит (новая вкладка, совершенно пустая и без названия открывается). Часа 1.5 чесала интернет, нашла совет вставить

1C
1
2
3
4
Процедура ПриСозданииНаСервере()
    Форма= ПолучитьФорму("ФормаНовая");
    Форма.Открыть();
КонецПроцедуры
несработало...

Как заставить работать обработку?

Структура обработки и форма:

(А еще на форму почему-то не хочет вставать таблица...)

Вернуться к обсуждению:
Внешняя обработка. Загрузка данных для создания заказов из CSV в 1С 8.3 1С
Миниатюры
Внешняя обработка. Загрузка данных для создания заказов из CSV в 1С 8.3  
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2019, 17:10
Готовые ответы и решения:

Внешняя обработка для создания документа
Нужно создать внешнюю обработку для созданию общего заказа поставщику из остальных заказов с...

Внешняя Обработка Печати Заказов на перемещение
Создал форму обработки , есть код для обработки но без синтаксических ошибок . Но 1с упрямо...

Внешняя обработка для создания одного документа на основании другого.
Друзья, хееелп!!! Есть Док1 с реквизитами Склад и Поставщик. Мне нужно для каждой такой пары...

Внешняя обработка данных, содержащихся в ИБ 1С версий 8.*
Необходима помощь в написании кода по поиску информации в файле *.1cd, без установленного ПО &quot;1С&quot;

4
04.02.2019, 17:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2019, 17:10
Помогаю со студенческими работами здесь

1С 8.3 Внешняя обработка "Выгрузка/Загрузка документов"
Здравствуйте! Срочно стало нужно изучить 1с. Нужно выполнить задание: внешняя обработка, форма с 2...

Загрузка данных из csv
Добрый день! Есть файл .csv с количеством строк &gt; 40 млн. (данные о паспортах). Стоит задача...

Загрузка данных из csv в access
ДОбрый день всем) вообщем проблема у меня такая. есть файл csv с огромных количеством строк около...

Загрузка данных из csv в DGV
Добрый вечер, уважаемые программисты! Прошу вашей помощи. Имеется файлик csv, там данные разделены...

Внешняя обработка для УФ
делаю внешнюю обработку для бухгалтерии 3.0, подключил ее как внешнюю, указал ссылку на документ в...

Внешняя обработка для документа
Типовая конфигурация бухгалтерии. Есть документ &quot;Комплектация номенклатуры&quot; Нужно добавить...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru