7.7 Не записывет в Регистр

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем damates, 3 сен 2010.

  1. TopicStarter Overlay
    damates
    Offline

    damates

    Регистрация:
    17 авг 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Интересная ситуация пр проведении документа. В регистре в измерениях Сырье (Справочник.Сырье)
    Перед проведением в документе в ТЗО записываю в ручную наименование сырья(в одну только ячейку). Все проводит но смотрю движение документа этого сырья нет (пустая ячейка). В ТЗО есть. В отчет попадает (но пусто) Пытался записать значение из справочника (оно там есть) в ТЗО - все тоже самое.
    Хреньдец! Может строковый тип поставить на измерение и перепровести все?...

    Попробовал - сырье чифрами!
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Для начала - что за конфигурация? (если самописка - так и нужно говорить)
    Второе - проблему по пунктам. Ничего не понятно из вопроса
  3. TopicStarter Overlay
    damates
    Offline

    damates

    Регистрация:
    17 авг 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Конфига самопальная, разрабатываю для хлебопекарни. По рецептам расчитывается норма сырья которая необходима была на выпускаемую продукцию. Все получается кроме хлеба. Он расчитывается по другим алгоритмам. Мука в рецепт не входит, а расчитывается изходя из кол-ва буханок, веса и процента влажности. Остальное сырье (нормы берутся из справочника) расчитывается от веса муки. Инградиенты которые входят в рецепт записываются в Регистр нормально (наименования), а мука только сумма. Легче всю конфигу показать. Вот Модуль проведения:

    Код:
    Процедура ОбработкаПроведения()
    
    Перем НН,НСтр,КгМуки,КгХлеба,НомСтр,НомКол,ЗначИзТЗО,Кол,Сумм,С;
    Таб = СоздатьОбъект ("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    
    ВыбратьСтроки();
    СпрРецепты = СоздатьОбъект("Справочник.Рецепты");
    СпрСырье=СоздатьОбъект("Справочник.Сырье");
    СпрПродукция=СоздатьОбъект("Справочник.Продукция");
    СпрСырье.ПорядокКодов();
    СпрСырье.ВыбратьЭлементы();
    ТЗО = СоздатьОбъект("ТаблицаЗначений");
    ТЗО.НоваяКолонка("Сырье");
    //заполним ТЗО сырьем какое используется для Продукции
    Пока ПолучитьСтроку() = 1 Цикл
    СпрРецепты.ИспользоватьВладельца(Продукция);//исспользуем из документа продукцию как владельца
    СпрРецепты.ВыбратьЭлементы();//берем элементы
    Пока СпрРецепты.ПолучитьЭлемент()>0 Цикл  //перебираем их
    ТЗО.НоваяСтрока();
    ТЗО.Сырье=СпрРецепты.Сырье;
    КонецЦикла;
    КонецЦикла;
    ТЗО.Свернуть("Сырье",);//Удаляем повторяющиеся
    //расчет норм и всего остального с занесением в ТЗО
    НомСтр=0;Кол=2;
    ТЗО.НоваяСтрока();//для КгХлеба
    ТЗО.НоваяСтрока();//для КгМуки
    Пока ПолучитьСтроку() = 1 Цикл
    СпрРецепты.ИспользоватьВладельца(Продукция);//исспользуем из документа продукцию как владельца
    СпрРецепты.ВыбратьЭлементы();//берем элементы
    СпрПродукция.НайтиЭлемент(Продукция);//ищем в справочнике продукции соотв Продукцию из док-та и берем Вес 
    КгХлеба=СпрПродукция.Вес*Колво;//расчитываем килограммов хлеба
    КгМуки=(КгХлеба*100)/Процент; //расчитываем кигограммы муки
    ТЗО.НоваяКолонка();//новая колонка для расчетных данных (по нормам)
    ТЗО.УстановитьЗначение(ТЗО.КоличествоСтрок()-1,ТЗО.КоличествоКолонок(),КгХлеба);
    ТЗО.УстановитьЗначение(ТЗО.КоличествоСтрок(),ТЗО.КоличествоКолонок(),КгМуки);
    Пока СпрРецепты.ПолучитьЭлемент()>0 Цикл  //перебираем их
    //ищем в ТЗО элемет из рецепта и проверяем (Масло растительное)
    //если не масло то считаем по одой формуле ,а если масло по другой
    ТЗО.НайтиЗначение(СпрРецепты.Сырье,НомСтр,НомКол);
    ЗначИзТЗО=ТЗО.ПолучитьЗначение(НомСтр,НомКол);
    Кол=ТЗО.КоличествоКолонок();
    Если СокрЛП(ЗначИзТЗО)="Масло растительное" Тогда
    ТЗО.УстановитьЗначение(НомСтр,Кол,((КгХлеба*СпрРецепты.Норма)/100));
    Иначе
    ТЗО.УстановитьЗначение(НомСтр,Кол,((КгМуки*СпрРецепты.Норма)/100));
    КонецЕсли;
    НомСтр=0; 
    КонецЦикла;
    
    КонецЦикла;
    
    ТЗО.Сортировать("+Сырье");
    ТЗО.УдалитьСтроку(1);//тут не нужна
    ТЗО.НоваяКолонка();//добавим колонку для суммы по строке
    Для Ст=1 По ТЗО.КоличествоСтрок() Цикл //перебираем ТЗО
    Для к=2 По ТЗО.КоличествоКолонок()-1 Цикл //по колонкам и 
    Сумма=Сумма+ТЗО.ПолучитьЗначение(Ст,К);//считаем в строке сумму
    КонецЦикла;
    ТЗО.УстановитьЗначение(Ст,К, Сумма);//записываем сумму строки в последнюю колонку
    Сумма=0;//обнуляем сумму для следующей строки
    КонецЦикла;	
    ТЗО.ВыбратьСтроки(); 
    С = 1;//счетчик строки
    Пока ТЗО.ПолучитьСтроку()=1 Цикл
    Регистр.РегСырье.Кондитер = Кондитер;
    Регистр.РегСырье.Сырье =  ТЗО.ПолучитьЗначение(С,1);//получим сырье из первой колонки ТЗО
    Регистр.РегСырье.НормаОбщ = ТЗО.ПолучитьЗначение(С,ТЗО.КоличествоКолонок());//получим значение суммы из последней колонки
    Регистр.РегСырье.ДвижениеВыполнить(); 
    С=С+1;
    КонецЦикла;
    
    КонецПроцедуры
    
    
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Скорре всего вы ошиблись с видом. (мука это не тот вид справочника). В регистре сырье у вас справочник определенного вида?

    сделайте так:
    Код:
    Пока ТЗО.ПолучитьСтроку()=1 Цикл         
    Регистр.РегСырье.Кондитер = Кондитер;         
    Регистр.РегСырье.Сырье =  ТЗО.ПолучитьЗначение(С,1);
    Сообщить(ТЗО.ПолучитьЗначение(С,1).Вид());
    Регистр.РегСырье.НормаОбщ = ТЗО.ПолучитьЗначение(С,ТЗО.КоличествоКолонок());//получим значение суммы из последней колонки         
    Регистр.РегСырье.ДвижениеВыполнить();          
    С=С+1;    
    КонецЦикла;
    
    
    
  5. TopicStarter Overlay
    damates
    Offline

    damates

    Регистрация:
    17 авг 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Пишет такое:
    Сообщить(ТЗО.ПолучитьЗначение(С,1).Вид());
    {Документ.РасчетПоХлебу.Модуль Документа(71)}: Значение не представляет агрегатный объект (Вид)

    В регистре Измерения: Кондитер(Справочник.Кондитер),Сырье (Справочник.Сырье)
    Делал:Сырье(Тип-Строка) В отчете цифры(?)
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Все правильно - ошибка и должна была быть. У вас (думаю что это как раз мука) НЕ ЯВЛЯЕТСЯ СПРАВОЧНИКОМ. Как следствие у нее нет вида. Поэтому и не пишет
  7. TopicStarter Overlay
    damates
    Offline

    damates

    Регистрация:
    17 авг 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Мне всего лишь нужно Слово "мука" попала в движение регистра.
    Может найти в справочнике (Сырье) и записать в регистр?
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Мука должна иметь тип Справочник.Сырье.
    Как элемент справочника мука должна быть.
    Ну а занести ее можно используя константу или через поик по кожу соответствующего элемента
  9. TopicStarter Overlay
    damates
    Offline

    damates

    Регистрация:
    17 авг 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Сделал через константу!!! Все работает!!! А как еще показать Владельца (список)в форме подчиненного справочника, чтоб кнопочку не тыкать? Добавлял таблицу - не получается.
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    значит не так делали...
  11. TopicStarter Overlay
    damates
    Offline

    damates

    Регистрация:
    17 авг 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    В форму вставил еще таблицу. Хотел добавить столбец, но не фига. И свойств таблицы почти никаких(формулу можно записать - типа Справочник.Продукция?).
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    На форму нужно повесить невидимую функцию (за границы формы) которая бы отвечала за отображение подчиненного справочника текущего элемента формы списка
  13. TopicStarter Overlay
    damates
    Offline

    damates

    Регистрация:
    17 авг 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Блин! Объясните дураку какя должна быть функция?
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Функция которая отслеживает изменеия на форме списка справочника (движение по списку)
  15. Evrey
    Offline

    Evrey

    Регистрация:
    3 авг 2010
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Пришли мне Файлы конфы и ТЗ если есть, попробую помочь

Поделиться этой страницей