Группа: Местный
Сообщений: 170
Из: Украина
Спасибо сказали: 32 раз
Рейтинг: 0
Добрый день!
Возникла проблема с дублированием номенклатуры в табличной части документа, так как пользователи нечего не хотят слушать и знать, пытаюсь решить проблему объединением строк табличной части документа, но у вы все попытки увенчались полным провалом. Может кто-то сталкивался с данной проблемой, дайте пенок в нужное направление. Конфигурация не типовая, платформа (8.1.11.67). Заранее благодарен.
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0
В какой момент должно происходить объединение и, самое главное, как? Ответите на эти 2 вопроса и сразу будет виден алгоритм требуемых действий. Могу только предположить, что нужно будет просуммировать в одинаковых строчках поле количество, а остальные поля - пересчитать.
Правильно поставленный вопрос содержит до 90% ответа.
Группа: Местный
Сообщений: 170
Из: Украина
Спасибо сказали: 32 раз
Рейтинг: 0
Цитата(pablo @ 14.03.13, 16:09)
В какой момент должно происходить объединение и, самое главное, как? Ответите на эти 2 вопроса и сразу будет виден алгоритм требуемых действий. Могу только предположить, что нужно будет просуммировать в одинаковых строчках поле количество, а остальные поля - пересчитать.
Нужно объединить все строки ТЧ по определенной номенклатуре (Услуга) и просуммировать не только количество но еще пару числовых полей.
Вам нужно найти номенклатуру с похожим, но не идентичным наименованием? Посмотрите алгоритм сравнения лексем на основании расстояния Левенштейна Если это вам подходит - могу выложить обработку по поиску дублей контрагентов, которая использует этот алгоритм.
Вообще, я думаю вы себе большую проблему создаете
Цитата
так как пользователи нечего не хотят слушать и знать
Сейчас проблема из-за того, что пользователи создают дубли номенклатуру. После того как вы реализуете механизм свертки - любое дублирование номенклатуры будет уже из-за того что вы что-то сделали, но все равно ничего не работает. Вне зависимости, работает алгоритм свертки как надо или нет. Люди, которые "ничего не хотят слушать и знать", с большим удовольствием сделают свою вину - вашей.
Группа: Местный
Сообщений: 170
Из: Украина
Спасибо сказали: 32 раз
Рейтинг: 0
Цитата(zay @ 14.03.13, 17:08)
Вам нужно найти номенклатуру с похожим, но не идентичным наименованием? Посмотрите алгоритм сравнения лексем на основании расстояния Левенштейна Если это вам подходит - могу выложить обработку по поиску дублей контрагентов, которая использует этот алгоритм.
Вообще, я думаю вы себе большую проблему создаете
Сейчас проблема из-за того, что пользователи создают дубли номенклатуру. После того как вы реализуете механизм свертки - любое дублирование номенклатуры будет уже из-за того что вы что-то сделали, но все равно ничего не работает. Вне зависимости, работает алгоритм свертки как надо или нет. Люди, которые "ничего не хотят слушать и знать", с большим удовольствием сделают свою вину - вашей.
Со слов пользователей я и так во всех бедах виноват. Сворачивать номенклатуру нужно только по одному элементу спр.номенклатура, он всегда один и он не меняется (у тех самых пользователей прав чуть не хватает). Вся беда в том что данная позиция номенклатуры является услугой, при выборе ее необходимо указывать такие параметры как вес, длина, ширина и высота, вот собственно из чего весь сыр-бор, при заполнении перечня номенклатуры пользователю удобно указывать в разных строках разные параметры так как вес может быть от 0,01кг до 20000 тон и таких позиций может быть 20.
Приведите пример дублирующихся строк и правильный результат объединения (как Вам нужно их свернуть/объединить), тогда может будет понятней, в чем проблема...
Вся беда в том что данная позиция номенклатуры является услугой, при выборе ее необходимо указывать такие параметры как вес, длина, ширина и высота, вот собственно из чего весь сыр-бор, при заполнении перечня номенклатуры пользователю удобно указывать в разных строках разные параметры так как вес может быть от 0,01кг до 20000 тон и таких позиций может быть 20.
Понятно. В конфигурации УТП в справочнике "Единицы измерения" есть реквизиты ЕдиницаПоКлассификатору и Коэффициент. Если у вас Бухгалтерия для Украины - добавьте эти реквизиты. Использовать их можно так:
"Единицы измерения" ------------------------------------------------------------------- | Название | ЕдиницаПоКлассификатору | Коэффициент | ------------------------------------------------------------------- | г | кг | 0.001 | | кг | кг | 1 | | т | кг | 1000 | -------------------------------------------------------------------
Сделайте пользователю кнопку "Свернуть" (Делать это при окончании редактирования табличного поля - неудачная идея) При нажатии на кнопку отрабатывает процедура: Выгружаем ТЧ. Обходим все строки и конвертируем все граммы/килограммы/тонны в килограммы используя Коэффициент Сворачиваем ТЗ Загружаем ТЧ
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(zay @ 15.03.13, 9:53)
В конфигурации УТП в справочнике "Единицы измерения" есть реквизиты ЕдиницаПоКлассификатору и Коэффициент. Если у вас Бухгалтерия для Украины - добавьте эти реквизиты.
Цитата(Meest @ 14.03.13, 16:04)
Конфигурация не типовая, платформа (8.1.11.67).
Личные бесплатные консультации не даю, для этого есть форум!
Если ПереченьНоменклатуры.Количество() > 1 и (СтрокаСНоменклатурой.Номенклатура = СтрокаТЧ.Номенклатура) И (СтрокаСНоменклатурой <> СтрокаТЧ) и СтрокаТЧ.КвоМест > 0 Тогда СтрокаСНоменклатурой.Вес = СтрокаСНоменклатурой.Вес+СтрокаТЧ.Вес; СтрокаСНоменклатурой.Высота = СтрокаСНоменклатурой.Высота+СтрокаТЧ.Высота; СтрокаСНоменклатурой.Длина = СтрокаСНоменклатурой.Длина+СтрокаТЧ.Длина; СтрокаСНоменклатурой.КвоЕд = СтрокаСНоменклатурой.КвоЕд+СтрокаТЧ.КвоЕд; СтрокаСНоменклатурой.КвоМест = СтрокаСНоменклатурой.КвоМест+СтрокаТЧ.КвоМест; СтрокаСНоменклатурой.Объем = СтрокаСНоменклатурой.Объем+СтрокаТЧ.Объем; СтрокаСНоменклатурой.Сумма = СтрокаСНоменклатурой.Сумма+СтрокаТЧ.Сумма; СтрокаСНоменклатурой.Ширина = СтрокаСНоменклатурой.Ширина+СтрокаТЧ.Ширина; ПереченьНоменклатуры.Удалить(СтрокаТЧ); КонецЕсли;
2. Более оптимальный
Если ПереченьНоменклатуры.Количество() > 1 и (СтрокаСНоменклатурой.Номенклатура = СтрокаТЧ.Номенклатура) и (СтрокаСНоменклатурой <> СтрокаТЧ) и СтрокаТЧ.КвоМест > 0 Тогда ПереченьНоменклатуры.Свернуть("Номенклатура","Вес,Высота,Длина,КвоЕд,КвоМест,Объем,Сумма,Ширина,КвоУпаковки,СуммаУпаковки"); КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!