Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 20:05
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Реквизит номенклатуры АВС  (Прочитано 936 раз)

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

Оффлайн c_andrey

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-03-11
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день.
1С 8.2 УТ обычный интерфейс.
Есть отчет анализ АВС самописный (Номенклатуры).
Он дает результат отчетом напротив каждой номенклатуры-группа (А..В...или С).
Необходимо после отчета который выведен на экране занести соответствующей номенклатуре класс А..В или С.
Делал так.
После нажатия кнопки такой код
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.АВС
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

    Для Каждого СтрокаТаблицы из мСписокОбъектов Цикл
Если СтрокаТаблицы.Номенклатура = Неопределено Тогда
Продолжить;
КонецЕсли;
    КонецЦикла;

    Если Выборка.АВС <>СтрокаТаблицы.Класс Тогда
АВС= СтрокаТаблицы.Класс
Иначе

Конецесли;

Попытка
КонтрагентОбъект = Выборка.Ссылка.ПолучитьОбъект();   
КонтрагентОбъект.АВС = СтрокаТаблицы.Класс;
КонтрагентОбъект.Записать();
Исключение

КонецПопытки;

 КонецЦикла;

Проблема
1) В том что долго думает при нажатии кнопки.
2) Назначает всей номенклатуре класс "С" который стоит последний в таблице(при сформированном отчете).
3) Если выбрана одна номенклатура в отчете (Отбором). То всей номенклатуре в справочние (номенклатуры) присваивается этот клас "В" например.

Подскажите где ошибка в коде.
Спасибо.


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
обычно для заполнения применяют обработку а не отчет.
отчет только отображает какие то данные.
в итоге что нужно:
    а. результат расчета класса номенклатуры вывести не в табдок (читай отчет), а в табличное поле на форму
    б. после чего обойти табличное поле и заполнить соответствующие элементы справочника Номенклатура
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн c_andrey

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-03-11
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо Вам cska-fanat-kz за подсказку.
Как Вы видите Ваш  код. В условии обработки. Напишите пожалуйста.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
зависит еще от того как вы данные получите...
если в виде:
    Номенклатура / Класс

то код по обходу - примитивный
Для каждого СтрокаТЧ Из СписокНоменклатуры Цикл
    НомОбъект = СтрокаТЧ.Номенклатура.ПолучитьОбъект();
    НомОбъект.ABC = СтрокаТЧ.Класс;
    НомОбъект.Записать();
КонецЦикла;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн c_andrey

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-03-11
  • Сайт: 
  • Профессия: Ученик 1С
Применил Ваш код.

Считает как мой код. Может...не что то делаю..
???
Если можно напишите полностью код как он должен выглядеть..(В отчете или обработке)
Спасибо

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
а я откуда знаю, как вы классификацию вычисляете???!!! :trhregerhg:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн c_andrey

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-03-11
  • Сайт: 
  • Профессия: Ученик 1С
расчет колонка Класс
ВЫБОР 
    КОГДА Сумма(КоличествоОборот)/Максимум(Период) < &КлассС ТОГДА "С"
    ИНАЧЕ ВЫБОР
    КОГДА Сумма(КоличествоОборот)/Максимум(Период) < &КлассВ ТОГДА "В"
    ИНАЧЕ "А"
   КОНЕЦ
   КОНЕЦ   
   

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Вот и получите запросом таблицу с 2умя колонками: Номенклатура и Класс.
Выгружайте ее на форму, а далее - см. выше.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн c_andrey

  • **
  • Сообщений: 85
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-03-11
  • Сайт: 
  • Профессия: Ученик 1С
Ок. Спасибо так и делаю)))


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 345
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal