"Ты еще через временные таблицы и запрос сделай! ;)"
"Ты еще через временные таблицы и запрос сделай! ;)"
А как сделать более оптимально используя только два этих ДБФ?
попробую
у меня в дбф одна строка с ID, а в дбфс их может быть очень много
"Пишет не найден ID...я вообще не правильно делаю? или все же в том направлении?<br> <br>ДБФ = Новый XBase;<br> ДБФС = Новый XBase;<br><br> ДБФ.ОткрытьФайл(ВыбФайлНакл,,Истина); <br> ДБФС.ОткрытьФайл(ВыбФайлСостав, , Истина);<br><br> СтарНомер = """"; <br> ПервыйРаз = 1;<br> Записать = Ложь;<br> <br> Для НК = 1 По ДБФС.КоличествоЗаписей() Цикл<br> ДБФС.Перейти(НК);<br> Сообщить("Обрабатываем НК");<br> ДБФ.ТекущийИндекс = ДБФ.индексы.ID; <br> ДБФ.ключ.ID = ДБФС.NI_ID;<br> <br><br> ЗаписьНайдена = ДБФ.НайтиПоКлючу("=");<br> Сообщить(ЗаписьНайдена);<br><br> Кол = ДБФ.ID;<br><br> <br> Если Кол = ДБФС.NI_ID Тогда <br> Сообщить(ДБФС.AMOUNT + " нашли!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");<br> Иначе <br> Сообщить(ДБФС.NI_ID);<br> КонецЕсли;"
Ну ты вообще делаешь ни как я тебе предложил.
Да все правильно ты сказал, просто еще есть метод, все поместить во временные и сделать запрос с группировкой по строке одной таблицы и выводом строк другой. Про множественность строк во второй таблицы я не учел.
"ДБФ = Новый XBase;<br> ДБФС = Новый XBase;<br><br> ДБФ.ОткрытьФайл(ВыбФайлНакл,,Истина); <br> ДБФС.ОткрытьФайл(ВыбФайлСостав, , Истина);<br> <br>ДБФС.ДобавитьИндекс("NI_ID","NI_ID",0,0,"""");<br>ДБФС.СоздатьИндексныйФайл("NI_ID.CDX");<br>ДБФС.ТекущийИндекс("NI_ID");<br> <br>ДБФ.Первая();<br>Пока ДБФ.ВКонце()=0 Цикл<br> ДБФ_ID = ДБФ.ID;<br> ДБФС.Найти(ДБФ_ID,1);<br> Пока (ДБФС.NI_ID = ДБФ_ID) Цикл<br> Сообщить(ДБФС.AMOUNT + " нашли!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");<br> ДБФС.Следующая();<br> КонецЦикла;<br> ДБФ.Следующая();<br>КонецЦикла;"
"Выдает ошибку.<br>{Форма.Форма1.Форма(291)}: Поле объекта не обнаружено (AMOUNT)<br> НС.Количество = Формат(ДБФС.AMOUNT, "ЧГ=0");<br> <br> <br>ДБФС = Новый XBase;<br><br> ДБФС.Кодировка = КодировкаXBase.OEM;<br> ТЗНакл = Новый ТаблицаЗначений;<br> ТЗНакл.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число"));<br> ТЗНакл.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));<br> ТЗНакл.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));<br> ТЗНакл.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));<br> ТЗНакл.Колонки.Добавить("Договор", Новый ОписаниеТипов("Строка"));<br> ТЗНакл.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));<br> <br> ДБФС.ОткрытьФайл(ВыбФайлНакл, ,Истина);<br> НК = ДБФС.КоличествоЗаписей();<br><br> <br> Для НК = 1 По 5 Цикл<br> ДБФС.Перейти(НК);<br> <br> НС = ТЗНакл.Добавить();<br> НС.НомерСтроки = НК;<br> НС.Количество = Формат(ДБФС.AMOUNT, "ЧГ=0"); <br> НС.Сумма = Формат(ДБФС.SUMMA, "ЧГ=0");<br> НС.Цена = Формат(ДБФС.PRICE, "ЧГ=0");<br> НС.Договор = Формат(ДБФС.NI_ID, "ЧГ=0");<br> ДБФС.ТекущийИндекс = ДБФС.индексы.NI_ID;<br> <br>Индексы я правильно сделала?"
"исправила путь, но ошибка теперь такая<br> <br>{Форма.Форма1.Форма(295)}: Поле объекта не обнаружено (NI_ID)<br> ДБФС.ТекущийИндекс = ДБФС.индексы.NI_ID;"
1C:Лекторий: 14 мая 2024 года — Бесплатная онлайн-лекция об учете в 1С:БГУ 8 (ред. 2) невостребованной кредиторами задолженности. Серия 1С:Консалтинг для госсектора 1C:Лекторий: 16 мая 2024 года — Бесплатная онлайн-лекция о новом в «1С:Бухгалтерии 8» (релизы 3.0.148 – 3.0.151): новая методика учета расчетов на ЕНС с 2024 года; календарь отчетности; цифровой рубль |
1C:Лекторий: 23 мая 2024 года — Бесплатная онлайн-лекция об учете финансовой аренды у арендодателя в программах 1С:ERP и 1С:КА 1C:Лекторий: 6 июня 2024 года — Бесплатная онлайн-лекция об отражении расчетов на ЕНС в «1С:Бухгалтерии 8» |