|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
|
7.7 Количество Измерений В Регистре12.03.2012, 13:17. Показов 34857. Ответов 39
Метки нет (Все метки)
Добрый день! В продолжение темы о регистрах. Что-то никто не отвечает, решила вынести в отдельную тему.
Нужен совет, как лучше поступить. Имеется регистр остатков "Остатки товаров на комиссии" со следующими измерениями: Фирма, Комитент, Договор, Товар, Партия, СтрокаПартии. Есть необходимость для документа "Отчет комиссионера" получать сведения о стране происхождения товара. Получить их можно из приходных документов. Вопрос: что лучше - добавить в регистр измерение "Страна" либо крутить в цикле запрос, который из приходов будет вытаскивать нужные сведения?
0
|
|
| 12.03.2012, 13:17 | |
|
Ответы с готовыми решениями:
39
7.7 Порядок Измерений В Регистре Остатков
Как сделать слова, буквы четным индексом будет в верхнем регистре, а с нечетными в нижнем регистре |
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
||
| 13.03.2012, 15:30 | ||
Потом грамотно продумать структуру базы, а не лепить горбатого на ходу.
0
|
||
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
||
| 13.03.2012, 15:45 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
||
| 13.03.2012, 16:56 | ||
Код ( (Unknown Language)): Процедура Страна() ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл глПолучитьАтрибутыПартии(Товар, Партия, СтрПартии, "ОстаткиТоваровОтгруженных"); Попытка Страна = глСписок.ПолучитьЗначение(4); Исключение Сообщить("Не удалось получить атрибуты для партии " + Партия); КонецПопытки; КонецЦикла; КонецПроцедуры Где, по-вашему, ошибка? Причем обрабатывается 1495 строк, а потом "Недостаточно памяти".
0
|
||
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
||||||
| 13.03.2012, 17:22 | ||||||
|
А долго тест выполняется?
Если не очень долго, то сначала попробуйте так Попытка Страна = глСписок.ПолучитьЗначение(4); глСписок = ""; Исключение Сообщить("Не удалось получить атрибуты для партии " + Партия); КонецПопытки; а я пока еще подумаю практически 100%, что 1С не удаляет из памяти эти глСписок-и по крайней мере до завершения цикла можно еще так попробовать
если вы глПолучитьАтрибутыПартии уже используете в разных местах, то не надо будет исправлять
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
|||
| 13.03.2012, 17:32 | |||
Вот кусок реальной накладной. Одни и тот же товар, разные производители, разные страны, разный процент комиссионного вознаграждения. Добавлено:
0
|
|||
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
||
| 13.03.2012, 18:07 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
| 13.03.2012, 18:32 | |
|
утро вечера мудреней
0
|
|
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
||
| 13.03.2012, 21:49 | ||
Одним из способов решения проблемы, есть устранение самой проблемы. Чем ломать голову над вопросом "как достать" надо долго и внимательно обдумать структуру базы. Вот изложите коротенько ее структуру. P.S. Чур, не выкладывать MD и полное описание конфигурации!
0
|
||
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
| 14.03.2012, 09:59 | |
|
Конечно, чем лучше спроектирована структура регистров, тем удобнее потом программировать
Но лично мне сейчас стало интересно выяснить и устранить причину этой странной ошибки Я правильно понимаю, что в стороке Страна = Список.ПолучитьЗначение(4); Страна - это реквизит ТЧ того дока внутри которого находится Страна()?
0
|
|
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
||||||
| 14.03.2012, 10:10 | ||||||
|
Ну самым простым, для начала, будет отказ от глобальной функции, хотя бы узнаем она ли память жрет
Список был раньше устранен, а РегБН = СоздатьОбъект - остался
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
||
| 14.03.2012, 10:15 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
| 14.03.2012, 10:22 | |
|
Ольга13, вдруг не заметили, я в последнем посте на 1-ой странице вариант предложил
0
|
|
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
|||
| 14.03.2012, 10:36 | |||
Добавила еще в цикл Список.УдалитьВсе() - результат тот же. Судя по замеру производительности, больше всего времени жрет Партия.ПолучитьСтрокуПоНомеру(РегБН.Номе рСтроки()) - 89.7%. Может, и память в ту же пропасть уходит? Добавлено:
0
|
|||
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
||
| 14.03.2012, 10:49 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
| 14.03.2012, 11:29 | |
|
Блин, странно
А что у вас с релизом самой платформы? Я еще попробовал бы напрямую перебор строк Партии Думаю, что не на много дольше по времени будет, чем с использованием регистра (хотя, конечно, точно не узнаем пока не проверим) Если заработает в принципе, то можно будет думать как оптимизировать ЗЫ в последенем примере строку Список = СоздатьОбъект("СписокЗначений"); я просто забыл удалить
0
|
|
|
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
|
|
| 14.03.2012, 11:50 | |
|
Если я правильнопонял - то партия - это документ оприходования. Жаль. немного расскажу как у меня устроено.
Предметная область - оптовая торговля медикаментами. Целая туча ограничений и отчетов. Во всех документах, двигающих товар есть измерение серия номенклатуры. Это элемент справочника серии подчиненный справочнику номенклатура. В этой серии хранится практически всё по медикаменту - сертификаты, сроки годности, цены реестра, цены поставщиков, поставщик, ГТД, страна проихождения и.т.д. При этом во всех регистрах, в которых есть измерение номенклатура также есть и измерение серия номенклатуры. То бишь при создании любого отчета на этих регистрах я всегда могу поставить любое из полей серии в условие/группировку. Одна из тонкостей - каждая строка документов поступления содержит уникальную ссылку на серию, даже если введены копированием и товары ничем не отличаются - надо для разделения себестоимости по строкам, цены прихода бывают разные. Вот сколько за это время не требовали отчетов в разных комбинациях полей - никогда проблем не было. Если были тормоза - переписывал на прямой запрос.
0
|
|
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
||
| 14.03.2012, 11:52 | ||
Хотя все равно интересно, где ошибка. Эта же функция стоит в этом же документе в процедуре Заполнить() в теле цикла по группировкам запроса - и все работает -_-
0
|
||
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
||
| 14.03.2012, 12:40 | ||
* Спр-к Товары * Спр-к Партии - подчинен Товарам - Ссылка на Приходную - Страна ввоза (строка или ссылка на Спр-к) - Серия медикаментов - Срок годности - ...... * Регистр ОстаткиТоваров Изм - Склад - Товар - Партия Рес - Количество - Стоимость * Приходная Шака - Клиент - Склад ТЧ - Товар - Партия - Количество - Стоимость А то уж народ устал спрашивать "Партия" - это что? Ремарки: * Puh14. Как видишь мое видение примерно такое-же. Только я вынужден не циклиться на фармацевтах, и называю не Серия а Партия. * Многие программы используют принцип: все данные набирается в колонках документа, а при записи нужное переписывается в спр-ки. И выше тут предлагалось так делать со Страной. Но я считаю это не технологичным. Во-первых: когда в справочниках много заполняемых данных, то столько колонок в Приходной не нарисуешь. Кроме Страны и приведенных мной полей в Партии чего только может не быть: цвет, размер одежды, инд. номер партии завода, кол-во в упаковке (меняется у разных приходов) и т.д. до бесконечности. Во-вторых: Пользователю так нравится, только пока он не освоился в программе. Потом его станет напрягать 15 колонок (по опыту, документ набирается 1 раз а просматривается раз 5-8). В-третьих: А еще дублированность данных никогда к добру не приходит. Это нехорошо, когда пользователь заполняет в одном месте, а программа пользуется некоторой копией данных. Пусть чел знает, где что лежит. А программист не ломает голову откуда брать. В-четвертых: о размере базы полезно заботится.
0
|
||
|
1 / 1 / 0
Регистрация: 24.07.2008
Сообщений: 658
|
|
| 14.03.2012, 12:43 | |
|
Спору нет, система станет значительно гибче, если заменить измерение СтрокаПартии на справочник со всем нужным, заполняемый при проведении прихода
И даже если не сразу поймете что в нем нужно, а что нет, то исправить можно потом абсолютно без последствий И уже так и так получается, что причина ошибки не выясняется, а лишь обходится
0
|
|
|
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 208
|
|
| 14.03.2012, 16:07 | |
|
Спасибо за дельные советы, обязательно воспользуюсь.
0
|
|
| 14.03.2012, 16:07 | |
|
Задать количество измерений multi_array в рантайме Как увеличить количество измерений массива? Количество слов в верхнем регистре
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|