Подскажите команду для файла report.txt, что бы - при отправке его во фронтол _ получить полностью справочник товаров в каталог в любом читаемом формате
(1) если это отчет (report) из фронтол в этом файле информация по товару только его SKU и цена, наименования в нем нет,
но если это список выгрузки в фронтол
тогда список товаров это csv
1 столб SKU
2 ШК
3 Наим
....
5 Цена
(5) Для пользователя? Нужно получить список товаров из базы фронтол (код,наим,шк,цена) условно за 1 клик мышкой?
Нет такого простого решения, скрипт писать придется к базе firebird фронтол
CONNECT "localhost:E:\DATA\frontol6\MAIN.GDB" USER "SYSDBA" PASSWORD "masterkey";
SET HEADING OFF;
OUTPUT D:\DATA\frontol6\SPRT.txt;
SEL ECT ID,';',CODE,';',NAME from "SPRT";
OUTPUT D:\DATA\frontol6\BARCODE.txt;
SEL ECT WAREID,';',BARCODE from "BARCODE";
OUTPUT D:\DATA\frontol6\REMAIN.txt;
SELECT WAREID,';',ID fr om "REMAIN";
OUTPUT D:\DATA\frontol6\PRICEDATA.txt;
SELECT REMAINID,';',PRICE fr om "PRICEDATA";
QUIT;
Показать
получаем html отчет через onescript
ПутьФронтол="D:\DATA\frontol6\";
ФайлHTML="D:\DATA\frontol6\goods.html";
Текст = Новый ТекстовыйДокумент;
Коды=Новый Соответствие;
Текст.Прочитать(ПутьФронтол+"REMAIN.txt",КодировкаТекста.UTF8);
КоличествоСтрок = Текст.КоличествоСтрок();
Для Строка = 1 По КоличествоСтрок Цикл
МассивСтр=СтрРазделить(Текст.ПолучитьСтроку(Строка),";",Истина);
Если МассивСтр.Количество()>1 Тогда
Коды.Вставить(СокрЛП(МассивСтр[0]),СокрЛП(МассивСтр[1]));
КонецЕсли;
КонецЦикла;
Цены=Новый Соответствие;
Текст.Прочитать(ПутьФронтол+"PRICEDATA.txt",КодировкаТекста.UTF8);
КоличествоСтрок = Текст.КоличествоСтрок();
Для Строка = 1 По КоличествоСтрок Цикл
МассивСтр=СтрРазделить(Текст.ПолучитьСтроку(Строка),";",Истина);
Если МассивСтр.Количество()>1 Тогда
Цены.Вставить(СокрЛП(МассивСтр[0]),Число(СокрЛП(МассивСтр[1])));
КонецЕсли;
КонецЦикла;
Штрихкоды=Новый Соответствие;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ПутьФронтол+"BARCODE.txt",КодировкаТекста.UTF8);
КоличествоСтрок = Текст.КоличествоСтрок();
Для Строка = 1 По КоличествоСтрок Цикл
МассивСтр=СтрРазделить(Текст.ПолучитьСтроку(Строка),";",Истина);
Если МассивСтр.Количество()>1 Тогда
ИД=СокрЛП(МассивСтр[0]);
ШК=СокрЛП(МассивСтр[1]);
ШК=""+Штрихкоды.Получить(ИД)+","+ШК;
Штрихкоды.Вставить(ИД,ШК);
КонецЕсли;
КонецЦикла;
Текст.Прочитать(ПутьФронтол+"SPRT.txt",КодировкаТекста.UTF8);
КоличествоСтрок = Текст.КоличествоСтрок();
Массив=Новый Массив;
Массив.Добавить("<ht ml>");
Массив.Добавить("<body>");
Массив.Добавить("<table border>");
Для Строка = 1 По КоличествоСтрок Цикл
МассивСтр=СтрРазделить(Текст.ПолучитьСтроку(Строка),";",Истина);
Если МассивСтр.Количество()>2 Тогда
ИД=СокрЛП(МассивСтр[0]);
Код=СокрЛП(МассивСтр[1]);
Ном=СокрЛП(МассивСтр[2]);
Цена=Цены.Получить(Коды.Получить(ИД));
ШК=Штрихкоды.Получить(ИД);
Массив.Добавить("<tr>");
Массив.Добавить("<td>"+Код+"</td>");
Массив.Добавить("<td>"+Ном+"</td>");
Массив.Добавить("<td>"+Цена+"</td>");
Массив.Добавить("<td>"+ШК+"</td>");
Массив.Добавить("</tr>");
КонецЕсли;
КонецЦикла;
Массив.Добавить("</table>");
Массив.Добавить("</body>");
Массив.Добавить("</html>");
Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку(СтрСоединить(Массив,Символы.ПС));
Текст.Записать(ФайлHTML);
ЗапуститьПриложение(ФайлHTML,,Ложь);
я написал 2 простейших запроса, которые помогли мне вытащить всю информацию, но как их "упростить" - пока не знаю:
CRE ATE VIEW MyWares AS
SEL ECT
sprt.id,
sprt.code,
sprt.mark,
sprt.parentid,
sprt.name,
sprt.text,
sprt.isware,
REMAIN.ID as remainid,
sprt.flags,
sprt.waretype,
barcode.BARCODE
FROM SPRT
LEFT JOIN BARCODE ON SPRT.ID = BARCODE.WAREID
LEFT JOIN REMAIN ON SPRT.ID = REMAIN.WAREID
(13) обычно пользователю весть список не нужен, нужен список с отбором по части наименования или цене (+/-) или шк, у меня для пользователей фронтол (xpos) сделаны несколько HTA приложений. Предполагаю в вашем случае нужно что-то подобное, какое нибудь браузерное окно, пара тройка полей отбора, кнопка показать + таблица результата, как оно будет под капотом данные получать из базы это неважно. Если сие нужно на кассе где нет обычной клавиатуры, то придется буквы нарисовать (для ввода наименования).
(13) Добрый день, дайте пожалуйста рабочий скрипт для выгрузки . Этот останавливается у меня на втором "SELECT". Сделать не могу ничего . Запускал в Database Workbench 5 Pro