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

орп

Автор sali, 28 фев 2025, 08:06

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

sali

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

antoneus

Прям все документы надо открыть? А если их будет 50?

sali

antoneus, ну откроется там один и проведут

sali

antoneus, спорно....ну хрен тогда с ними

sali

antoneus, а вот насчет создания нескольких документов.
как проверять на предыдущие значение магазин и смену?

antoneus

Недопонял)

sali

antoneus, ну в чеке может оказаться не один магазин или не одна смена в одном или же разных магазинах. и каждый новый магазин с новой сменой, нужно вносить в новый документ.
как проверить предыдущие значение магазина и смены?
допустим первый чек с магазина "чивапчичи" 1 смена 5 реализаций, 2 смена 1 реализация, следующий магазин "цицкаридзе" 1 смена 6 реализаций. это 3 документа.
1 документ магазин  "чивапчичи" 5 реализаций смена 1
2 документ магазин  "чивапчичи" 1 реализация смена 2
3 документ магазин "цицкаридзе" 6 реализаций смена 1

antoneus

Еще раз повторяю: разделить таблицы с данными шапки - вот эти магазины, номера смен и т.д. и данными табличных частей - товары, услуги, количество и т.д. Это должны быть разные таблицы. Первую таблицу сворачиваем - по магазину и смене, например (и по прочим данным шапки). Во второй таблице оставляем колонки с магазином и номером смены, например - или с теми данными, по которым можно ОДНОЗНАЧНО определить, к какому документу относится строка таблицы. Далее цикл по первой таблице. Создаем документ, заполняем шапку. С помощью НайтиСтроки находим по отбору строки во второй таблице. Заполняем табличные части. Записываем документ, переходим к следующему.

sali

antoneus, это еще здесь нужно переделывать

Для Каждого Элемент1 Из ДокументРеализация.ЭлементДокумента.ДочерниеУзлы Цикл
Если Элемент1.ИмяУзла = "doc_hd" Тогда

Док_НД_Релиз = Элемент1;
         
Для Каждого Элемент2 Из Элемент1.ДочерниеУзлы Цикл 
Если Элемент2.ИмяУзла = "doc_det" Тогда

Док_Дет_Релиз = Элемент2;
НоваСтрока = Объект.ДанныеФайлаРеализации.Добавить();

НоваСтрока.ФиксНомер   = Док_НД_Релиз.Атрибуты[5].ЗначениеУзла;
НоваСтрока.НомерМагазина  = Док_НД_Релиз.Атрибуты[1].ЗначениеУзла;
НоваСтрока.НомерСмены   = Док_НД_Релиз.Атрибуты[6].ЗначениеУзла;     
НоваСтрока.ДатаПродажи    = Док_НД_Релиз.Атрибуты[2].ЗначениеУзла;
НоваСтрока.ОплатаБезналом = ?(Док_НД_Релиз.Атрибуты[7].ЗначениеУзла = "0", истина, ложь);
НоваСтрока.ВидОплаты   = Док_НД_Релиз.Атрибуты[8].ЗначениеУзла;
НоваСтрока.ЭтоВозврат     = ?(Док_НД_Релиз.Атрибуты[4].ЗначениеУзла = "1", истина, ложь);   

НоваСтрока.Номенклатура   = Справочники.Номенклатура.НайтиПоКоду(Док_Дет_Релиз.Атрибуты[0].ЗначениеУзла);
НоваСтрока.Количество     = Док_Дет_Релиз.Атрибуты[1].ЗначениеУзла;
НоваСтрока.Цена   = Док_Дет_Релиз.Атрибуты[2].ЗначениеУзла;
НоваСтрока.Сумма       = НоваСтрока.Цена * НоваСтрока.Количество;     

КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;

писать шапка = новый таблицазначений  и реквизитышапки = новый таблицазначенийили на форме просто создать таблицу значений заполнять ее.

antoneus

Создать на форме две штуки и заполнять.

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

Поиск