3-й действенный способ(медленный или нет - не знаю, меня устраивает). подключение к базе через COM-объект
Сначала установка и настройка по мануалу Для просмотра ссылки Войдиили Зарегистрируйся
У меня 1с версии 7.7, база на файлах, поэтому использую COM-объект V77.Application
мой вывод, для примера
выгрузка 5000+ товаров выполняется примерно 1,5 минуты.
с 1с версии 8+ не работал, так что там могут быть другие методы/значения
Сначала установка и настройка по мануалу Для просмотра ссылки Войди
У меня 1с версии 7.7, база на файлах, поэтому использую COM-объект V77.Application
PHP:
<?php
set_time_limit(300);
$app=new COM("V77.Application");
$res=$app->Initialize(
$app->RMTrade(),
'ENTERPRISE /D "C:\test_base" /N root /P password', // C:\test_base - путь к базе, root - юзер, password - пароль
'NO_SPLASH_SHOW' // экран заставки не нужен
) or die('cannot connect');
$ost=$app->CreateObject("Регистр.ОстаткиТМЦ") or die('cannot make registr'); // создаем объект Регистр.ОстаткиТМЦ(как раз то, что нужно ТС - товары, где кол-во больше нуля)
$ost->ВыбратьИтоги();
$i=0;
while($ost->ПолучитьИтог()==1){ // здесь, в цикле выводим все нужные значения
++$i;
echo "".$ost->Номенклатура->Наименование."\r\n";
echo "".$ost->Номенклатура->ПолнНаименование."\r\n";
echo "Группа4: ".$ost->Номенклатура->Родитель->Родитель->Родитель->Родитель->Наименование."\r\n";
echo "Группа3: ".$ost->Номенклатура->Родитель->Родитель->Родитель->Наименование."\r\n";
echo "Группа2: ".$ost->Номенклатура->Родитель->Родитель->Наименование."\r\n";
echo "Группа: ".$ost->Номенклатура->Родитель->Наименование."\r\n";
echo "Код: ".$ost->Номенклатура->Код."\r\n";
echo "Вес: ".$ost->Номенклатура->БазоваяЕдиница->Вес."\r\n";
echo "На складе: ".$ost->Склад->Наименование."\r\n";
echo "Кол-во: ".$ost->Количество."\r\n";
echo "Цена: ".$ost->ЦенаПрод."\r\n\r\n";
if($i==10) // заглушка на вывод
break; // только 10 первых товаров
}
?>
мой вывод, для примера
Вес везде по нулям, у нас он не нужен. Это просто вывод. Можно формировать в массив, потом упаковать в gz или другой архив с паролем и отправлять на сайт.Салфетки влажные чистящие в пластиковой тубе (100)
Салфетки влажные чистящие в пластиковой тубе (100 шт.)
Группа4:
Группа3: 1. Компьютерная техника
Группа2: 1.2. Мониторы
Группа: 1.2.3. Аксессуары для оргтехники
Код: 270222
Вес: 0
На складе: Склад номер раз
Кол-во: 4
Цена: 90
Цифровое устройство Flash 4GB USB 2.0 Kingston 109
Цифровое устройство Flash 4GB USB 2.0 Kingston Data Traveler 109
Группа4: 1. Компьютерная техника
Группа3: 1.4. Комплектующие к компьютерам
Группа2: 1.4.4. Модули памяти
Группа: 1.4.4.1. Flash
Код: И-004880
Вес: 0
На складе: Склад номер раз
Кол-во: 1
Цена: 250
Диск оптический DVD-R Verbatim 4.7 Gb
Диск оптический DVD-R Verbatim 4.7 Gb
Группа4: 1. Компьютерная техника
Группа3: 1.4. Комплектующие к компьютерам
Группа2: 1.4.8. CD
Группа: 1.4.8.5. CD / DVD Диски
Код: И-005877
Вес: 0
На складе: Склад номер раз
Кол-во: 38
Цена: 15
Диск оптический DVD+RW Verbatim 4.7 Gb 16x,
Диск оптический DVD+RW Verbatim 4.7 Gb 16x, Slim Case
Группа4: 1. Компьютерная техника
Группа3: 1.4. Комплектующие к компьютерам
Группа2: 1.4.8. CD
Группа: 1.4.8.5. CD / DVD Диски
Код: И-003804
Вес: 0
На складе: Склад номер раз
Кол-во: 4
Цена: 42
Конверт для CD пластик.
Конверт для CD пластиковый
Группа4: 1. Компьютерная техника
Группа3: 1.4. Комплектующие к компьютерам
Группа2: 1.4.8. CD
Группа: 1.4.8.5. CD / DVD Диски
Код: И-007346
Вес: 0
На складе: Склад номер раз
Кол-во: 45
Цена: 3.5
выгрузка 5000+ товаров выполняется примерно 1,5 минуты.
с 1с версии 8+ не работал, так что там могут быть другие методы/значения