Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
07 июл 2025, 19:12

Мобилка

Автор sali, 04 июл 2025, 11:03

0 Пользователей и 1 гость просматривают эту тему.

sali

antoneus, ага......а как сделать чтоб и через браузер было как в приложении??

antoneus

Никак. Браузер есть браузер, 1С не понимает - на чем его там запускают. Еще раз: так, как в конфигураторе, приложение будет выглядеть в мобильном клиенте.

sali

antoneus, короче через публикацию никак не проверить то же расположение лишь скачивать на телефон... спасибо.

sali

antoneus, а такой вопрос,  я делаю заполнение тч по выбранной номенклатуре&НаКлиенте
Процедура ПоискНоменклатурыПриИзменении(Элемент)

Если Не ЗначениеЗаполнено(ПоискНоменклатуры) Тогда
Возврат;
КонецЕсли;

СтруктураПараметров = ЗаполнитьСвойстваНоменклатуры(ПоискНоменклатуры);
ДобавитьПозициюНоменклатуры(СтруктураПараметров);                                                                                                                             

ПоискНоменклатуры = Неопределено;

КонецПроцедуры

&НаСервереБезКонтекста
Функция ЗаполнитьСвойстваНоменклатуры(Номенклатура)

СвойстваНоменклатуры = Новый Структура();
СвойстваНоменклатуры.Вставить("Номенклатура", Номенклатура);
СвойстваНоменклатуры.Вставить("ЕдиницаИзмерения", Неопределено);
СвойстваНоменклатуры.Вставить("Склад", Неопределено);
СвойстваНоменклатуры.Вставить("Количество", "");

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СправочникНоменклатура.Ссылка КАК Номенклатура,
| СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество,
| ТоварыНаСкладахОстатки.Склад КАК Склад
|ИЗ
| Справочник.Номенклатура КАК СправочникНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
| ПО (СправочникНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура)
|ГДЕ
| СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
|    И СправочникНоменклатура.Ссылка = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура); 

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл                                 
    ЗаполнитьЗначенияСвойств(СвойстваНоменклатуры, ВыборкаДетальныеЗаписи);
КонецЦикла;

Возврат СвойстваНоменклатуры;

КонецФункции

&НаСервере
Процедура ДобавитьПозициюНоменклатуры(СтруктураПараметров)

СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Номенклатура", СтруктураПараметров.Номенклатура);
НайденныеСтроки = Объект.Товары.НайтиСтроки(СтруктураОтбора);       

Если НайденныеСтроки.Количество() = 0 Тогда
СтрокаТабличнойЧасти = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТабличнойЧасти, СтруктураПараметров);
Иначе
СтрокаТабличнойЧасти = НайденныеСтроки[0];
СтрокаТабличнойЧасти.Количество = СтрокаТабличнойЧасти.Количество + 1;
КонецЕсли;

СтрокаТабличнойЧасти.ЕдиницаИзмерения = СтруктураПараметров.ЕдиницаИзмерения;

Элементы.Товары.ТекущаяСтрока = СтрокаТабличнойЧасти.ПолучитьИдентификатор();

КонецПроцедуры 

но я не учел того что товар может быть на нескольких складах. пробовал переписать на массив , но я тупой

antoneus

ну а что не получилось-то? Вместо одной структуры будет массив структур.

sali

antoneus, эт че получается так что ли??
&НаСервереБезКонтекста
Функция ЗаполнитьСвойстваНоменклатуры(Номенклатура)

СвойстваНоменклатуры = Новый Структура();
СвойстваНоменклатуры.Вставить("Номенклатура", Номенклатура);
СвойстваНоменклатуры.Вставить("ЕдиницаИзмерения", Неопределено);
СвойстваНоменклатуры.Вставить("Склад", Неопределено);
СвойстваНоменклатуры.Вставить("Количество", "");

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СправочникНоменклатура.Ссылка КАК Номенклатура,
| СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество,
| ТоварыНаСкладахОстатки.Склад КАК Склад
|ИЗ
| Справочник.Номенклатура КАК СправочникНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
| ПО (СправочникНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура)
|ГДЕ
| СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
|    И СправочникНоменклатура.Ссылка = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура); 

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
МассивСтруктур = Новый Массив();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл                                 
    МассивСтруктур.Добавить(ЗаполнитьЗначенияСвойств(СвойстваНоменклатуры, ВыборкаДетальныеЗаписи));
КонецЦикла;

Возврат МассивСтруктур;

КонецФункции

antoneus

Нет, не так. Нужно создавать новую структуру перед каждым добавлением в массив. Сейчас получится массив из одной и той же структуры, заполненной последними значениями из выборки.

sali

antoneus, &НаСервереБезКонтекста
Функция ЗаполнитьСвойстваНоменклатуры(Номенклатура)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СправочникНоменклатура.Ссылка КАК Номенклатура,
| СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество,
| ТоварыНаСкладахОстатки.Склад КАК Склад
|ИЗ
| Справочник.Номенклатура КАК СправочникНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
| ПО (СправочникНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура)
|ГДЕ
| СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
|    И СправочникНоменклатура.Ссылка = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура); 

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
МассивСтруктур = Новый Массив();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

СвойстваНоменклатуры = Новый Структура();
СвойстваНоменклатуры.Вставить("Номенклатура", Номенклатура);
СвойстваНоменклатуры.Вставить("ЕдиницаИзмерения", Неопределено);
СвойстваНоменклатуры.Вставить("Склад", Неопределено);
СвойстваНоменклатуры.Вставить("Количество", "");

ЗаполнитьЗначенияСвойств(СвойстваНоменклатуры, ВыборкаДетальныеЗаписи);
МассивСтруктур.Добавить(СвойстваНоменклатуры);
КонецЦикла;

Возврат МассивСтруктур;

КонецФункции


???

antoneus

Да, но можно же сразу значения вставлять)

СвойстваНоменклатуры.Вставить("ЕдиницаИзмерения", ВыборкаДетальныеЗаписи.ЕдиницаИзмерения);

sali

Цитата: antoneus от Сегодня в 12:27но можно же сразу значения вставлять)
можно. но решил над старым кодом шаманить

Теги:
Рейтинг@Mail.ru

Поиск