Здравствуйте! помогите пожалуйста с тестовым заданием. Я не знаю синтаксис языка 1С так как я программист js,php. Сможет кто нибудь просто в блокноте логику написать на 1с синтаксисе, я думаю разберусь после этого.Спасибо
Есть обычный текстовый файл, в котором содержатся данные о товаре в следующем формате:
Товар1;Артикул1;Цена;Количество
Товар2;Артикул2;Цена;Количество
…
ТоварN;АртикулN;Цена;Количество
Необходимо в режиме предприятия 1С сначала упаковать данные этого файла в XML для последующей передачи его обработке, которая из XML получает товары со своим данными и заполняет табличную часть. Если номенклатура (товар) в ИБ найдена по артикулу, а артикул уникальный во всей ИБ, то в табличной части в определённой колонке указывается ссылка на номенклатуру, иначе реализовать пользователю возможность интерактивно создать новый элемент Справочника «Номенклатура».
Упаковка и распаковка в XML как доп. задание, но если сможете будет отлично.
Есть обычный текстовый файл, в котором содержатся данные о товаре в следующем формате:
Товар1;Артикул1;Цена;Количество
Товар2;Артикул2;Цена;Количество
…
ТоварN;АртикулN;Цена;Количество
Необходимо в режиме предприятия 1С сначала упаковать данные этого файла в XML для последующей передачи его обработке, которая из XML получает товары со своим данными и заполняет табличную часть. Если номенклатура (товар) в ИБ найдена по артикулу, а артикул уникальный во всей ИБ, то в табличной части в определённой колонке указывается ссылка на номенклатуру, иначе реализовать пользователю возможность интерактивно создать новый элемент Справочника «Номенклатура».
Упаковка и распаковка в XML как доп. задание, но если сможете будет отлично.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если есть форматированный текстовый файл, ЗАЧЕМ еще мучиться в XML что то замуровывать?
Читайте посрочно , как и в любом языке, если вы программист...
На каждом шаге цикла
- поиск в базе по артикулу, при успешном поиске занесение в табличную часть ссылки, цены и количества.
- при неудачном поиске номенклатуры в базе - возможно автоматическое создание номенклатуры (зачем интерактивно напрягать пользователея?) и уже потом занесение в ваш документ ссылки на вновь созданную номенклатуру...
xml - вообще вам зачем?
Читайте посрочно , как и в любом языке, если вы программист...
На каждом шаге цикла
- поиск в базе по артикулу, при успешном поиске занесение в табличную часть ссылки, цены и количества.
- при неудачном поиске номенклатуры в базе - возможно автоматическое создание номенклатуры (зачем интерактивно напрягать пользователея?) и уже потом занесение в ваш документ ссылки на вновь созданную номенклатуру...
xml - вообще вам зачем?
(3)
А вообще, все просто:
1. Бесконечный цикл.
2. Читаем строку (проще использовать чтение текста)
3. Цикл по разделенной по разделителю строке
4. Значение полученного элемента в ключ структуры (можно соответствие с индексом в качестве ключа и элементом структуры в качестве значения)
5. Запись XML, JSON, прочего чего, в которую пишется структура.
6. Передача записанного в строку или файл значения во внешнюю обработку.
xml - вообще вам зачем?
Точно! JSON рулит!
А вообще, все просто:
1. Бесконечный цикл.
2. Читаем строку (проще использовать чтение текста)
3. Цикл по разделенной по разделителю строке
4. Значение полученного элемента в ключ структуры (можно соответствие с индексом в качестве ключа и элементом структуры в качестве значения)
5. Запись XML, JSON, прочего чего, в которую пишется структура.
6. Передача записанного в строку или файл значения во внешнюю обработку.
(0)
На выходе вот такой ХМЛ
Процедура ТекстВХМЛНаСервере()
ЗаписьХМЛ = Новый ЗаписьXML;
ЗаписьХМЛ.ОткрытьФайл(ПутьКФайлуХМЛ);
ЗаписьХМЛ.ЗаписатьОбъявлениеXML();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Данные");
ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуТХТ);
Стр = ЧтениеТекста.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
ДанныеСтроки = СтрРазделить(Стр, ";");
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("ДанныеТовара");
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Товар");
ЗаписьХМЛ.ЗаписатьТекст(ДанныеСтроки[0]);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Артикул");
ЗаписьХМЛ.ЗаписатьТекст(ДанныеСтроки[1]);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Цена");
ЗаписьХМЛ.ЗаписатьТекст(ДанныеСтроки[2]);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Количество");
ЗаписьХМЛ.ЗаписатьТекст(ДанныеСтроки[2]);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьКонецЭлемента(); //ДанныеТовара
Стр = ЧтениеТекста.ПрочитатьСтроку();
КонецЦикла;
ЗаписьХМЛ.ЗаписатьКонецЭлемента(); //Данные
ЗаписьХМЛ.Закрыть();
КонецПроцедуры
ПоказатьНа выходе вот такой ХМЛ
<?xml version="1.0" encoding="UTF-8"?>
<Данные>
<ДанныеТовара>
<Товар>Товар1</Товар>
<Артикул>Артикул1</Артикул>
<Цена>Цена</Цена>
<Количество>Цена</Количество>
</ДанныеТовара>
<ДанныеТовара>
<Товар>Товар2</Товар>
<Артикул>Артикул2</Артикул>
<Цена>Цена</Цена>
<Количество>Цена</Количество>
</ДанныеТовара>
<ДанныеТовара>
<Товар>ТоварN</Товар>
<Артикул>АртикулN</Артикул>
<Цена>Цена</Цена>
<Количество>Цена</Количество>
</ДанныеТовара>
</Данные>
Показать<Данные>
<ДанныеТовара>
<Товар>Товар1</Товар>
<Артикул>Артикул1</Артикул>
<Цена>Цена</Цена>
<Количество>Цена</Количество>
</ДанныеТовара>
<ДанныеТовара>
<Товар>Товар2</Товар>
<Артикул>Артикул2</Артикул>
<Цена>Цена</Цена>
<Количество>Цена</Количество>
</ДанныеТовара>
<ДанныеТовара>
<Товар>ТоварN</Товар>
<Артикул>АртикулN</Артикул>
<Цена>Цена</Цена>
<Количество>Цена</Количество>
</ДанныеТовара>
</Данные>
Прикрепленные файлы:
Текст в ХМЛ.epf
Это тестовое задание, а не соревнование в оптимальности.
Проверяются умения работы с парсингом csv файла, работа с xml, xdto, запросами и формами.
Только если вообще не знаете 1С, то какой смысл проходить это задание? Это уровень немного выше чем junior.
Проверяются умения работы с парсингом csv файла, работа с xml, xdto, запросами и формами.
Только если вообще не знаете 1С, то какой смысл проходить это задание? Это уровень немного выше чем junior.
ТС, вопросы остались? Сам я не смог оценить оставленные ответы, потому что не смог осилить описанную задачу. Уже на первом пункте
упаковать данные "обычного текстового файла" в XML
я споткнулся и завис. Нет, можно написать код, который прочитает текстовый файл в двоичные данные, а затем упакует их в архив и сохранит результат в виде xml-файла, но думаю, задача на самом деле не в этом. То ли постановщик задачи весьма косноязычен, то ли Вы такой же программист js,php, как я - балерина. Без обид.
Нет, можно, конечно, представить, что Вы - не программист, а среднестатистический юзер, пытающийся что-то объяснить на своем уровне. И расшифровать "хотелку", как это происходит обычно при общении со среднестатистическими юзерами. Но мы ведь не пойдем таким путем?
упаковать данные "обычного текстового файла" в XML
я споткнулся и завис. Нет, можно написать код, который прочитает текстовый файл в двоичные данные, а затем упакует их в архив и сохранит результат в виде xml-файла, но думаю, задача на самом деле не в этом. То ли постановщик задачи весьма косноязычен, то ли Вы такой же программист js,php, как я - балерина. Без обид.
Нет, можно, конечно, представить, что Вы - не программист, а среднестатистический юзер, пытающийся что-то объяснить на своем уровне. И расшифровать "хотелку", как это происходит обычно при общении со среднестатистическими юзерами. Но мы ведь не пойдем таким путем?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот