[РЕШЕНО] Получить итог из другой документ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Эмиль0690, 22 ноя 2014.

  1. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
    Добрый день!
    Нужно получить итого при изменение колличество т.е есть документ "ПоступлениеТовара" который считает кубатуру и документ "ЗагрузкиТовара".
    Например в доке "ПоступлениеТовара" 10количество = 10 КУБ а при "ЗагрузкиТовара" загружаю 5количество = 5 КУБ
    посмотрите пожалуйста мой код считает только РеальнуюСумму а нужно еще по РеальныйКуб и РеальныйКг
    Код:
        &НаКлиенте
    Процедура ТоварыРеальноеКоличествоПриИзменении(Элемент)
                    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
                    ТекущаяСтрока.РеальнаяСумма = ПолучитьСреднююЦену(ТекущаяСтрока.ДГП) * ТекущаяСтрока.РеальноеКоличество;
                    ТекущаяСтрока.РеальныйКуб = ПолучитьСреднююКуб(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество;
                    ТекущаяСтрока.РеальныйКг = ПолучитьСреднююКг(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество;
    КонецПроцедуры
    ошибка
    Код:
    {Документ.ОтправкаГрузаСПункт2.Форма.ФормаДокумента.Форма(26,33)}: Процедура или функция с указанным именем не определена (ПолучитьСреднююКуб)
                    ТекущаяСтрока.РеальныйКуб = <<?>>ПолучитьСреднююКуб(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество; (Проверка: Тонкий клиент)
    {Документ.ОтправкаГрузаСПункт2.Форма.ФормаДокумента.Форма(27,32)}: Процедура или функция с указанным именем не определена (ПолучитьСреднююКг)
                    ТекущаяСтрока.РеальныйКг = <<?>>ПолучитьСреднююКг(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество; (Проверка: Тонкий клиент)
    
    Код:
    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
       
        // общая сумма
        ПромежуточнаяСумма=0;
        Для Каждого ТекСтрока Из Товары Цикл
            ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальнаяСумма;
        КонецЦикла;
        ОбщаяСумма=ПромежуточнаяСумма;
        Прибыль = ОбщаяСумма - Перевозчик.ОбщийРасход;
        // общий куб
        ПромежуточнаяСумма=0;
        Для Каждого ТекСтрока Из Товары Цикл
            ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальныйКуб;
        КонецЦикла;
        РеальныйОбщийКуб=ПромежуточнаяСумма;
           
        // общий кг
        ПромежуточнаяСумма=0;
        Для Каждого ТекСтрока Из Товары Цикл
            ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальныйКг;
        КонецЦикла;
        РеальныйОбщийКг=ПромежуточнаяСумма;
        Баланс = ОбщийКуб/ОбщийКг;
    
             
    КонецПроцедуры
    
    Ошибка
    Код:
    {Документ.ОтправкаГрузаСПункт2.МодульОбъекта(68,11)}: Переменная не определена (ОбщийКуб)
        Баланс = <<?>>ОбщийКуб/ОбщийКг; (Проверка: Сервер)
    {Документ.ОтправкаГрузаСПункт2.МодульОбъекта(68,20)}: Переменная не определена (ОбщийКг)
        Баланс = ОбщийКуб/<<?>>ОбщийКг; (Проверка: Сервер)
    
    --- Объединение сообщений, 22 ноя 2014 ---
    красный цвет вопрос
    зеленый ок

    Вложения:

    • kub.jpg
      kub.jpg
      Размер файла:
      671,1 КБ
      Просмотров:
      4
    Последнее редактирование: 22 ноя 2014
  2. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
    Ребята! Кто нибудь ответе пожалуйста!
  3. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    По 1 ошибке у Вас не хватает процедуры/функции
    Код:
    ПолучитьСреднююКуб()
    //и
    ПолучитьСреднююКг()
    
    По 2 ошибке думаю понятно, не определены переменные:
    Код:
    ОбщийКуб
    //и
    ОбщийКг
    похоже откуда-то скопировали, но не все процедуры/функции ;)
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    если функции в общих модулях, то перед ними необходимо указать из какого модуля берутся
  5. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
    скопирован был только получить среднюю цену а я добавил еще куб и кг но ошибки дает
    Код:
        &НаКлиенте
    Процедура ТоварыРеальноеКоличествоПриИзменении(Элемент)
                    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
                    ТекущаяСтрока.РеальнаяСумма = ПолучитьСреднююЦену(ТекущаяСтрока.ДГП) * ТекущаяСтрока.РеальноеКоличество;
                    ТекущаяСтрока.РеальныйКуб = ПолучитьСреднююКуб(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество;
                    ТекущаяСтрока.РеальныйКг = ПолучитьСреднююКг(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество;
    КонецПроцедуры
    &НаСервереБезКонтекста
    Функция ПолучитьСреднююЦену(ДГП)
                    Возврат(ДГП.Сумма / ДГП.Количество);
                    Возврат(ДГП.Куб / ДГП.Количество);
                    Возврат(ДГП.ОбщийКг / ДГП.Количество);    
                   
                КонецФункции // ()
    
    Код:
    {Документ.ОтправкаГрузаСПункт2.Форма.ФормаДокумента.Форма(26,33)}: Процедура или функция с указанным именем не определена (ПолучитьСреднююКуб)
                    ТекущаяСтрока.РеальныйКуб = <<?>>ПолучитьСреднююКуб(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество; (Проверка: Тонкий клиент)
    {Документ.ОтправкаГрузаСПункт2.Форма.ФормаДокумента.Форма(27,32)}: Процедура или функция с указанным именем не определена (ПолучитьСреднююКг)
                    ТекущаяСтрока.РеальныйКг = <<?>>ПолучитьСреднююКг(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество; (Проверка: Тонкий клиент)
    
    --- Объединение сообщений, 24 ноя 2014 ---
    а понял сейчас посмотрю
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну так, функции то надо определить и написать выполняемый код в них, а сейчас у вас их нет. По идее они наверняка похожи на скопированную, только переменная другая в них. Вот и дорабатывайте
  7. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    /Offtop on/
    мне лично очень жалко того программиста 1С, который придет на смену ТС......
    /Offtop off/
  8. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
    а что за тема ТС....
  9. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ТС - это вы - топик стартер то бишь
  10. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
    а почему жалко того кто придет на смену ТС?
    чего плохого я сделал?-Android-
  11. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Я скажу одну умную вещь, только прошу не обижаться, но программировать без соблюдения малейших представлений о процессах, происходящих в результате написанного кода, - это, мягко сказать, абсурдно.
  12. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Согласен и поддерживаю.
  13. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Третьим буду? Эмиль почитайте про основы программирования, вы просто пытаетесь провести какую то слепую аналогию, которую воспринимаете по своему и которая идет в разрез с методологиями программирования.
    Увидели что написано ПолучитьСреднююЦену и решили что если напишите ПолучитьСреднююКуб то будет вам счастье.
    Начните с чего нибудь более простого.
  14. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
  15. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
    Ребята вот изменил код проверил кода ошибки нет но при изменение выдает ошибку,
    посмотрите пожалуйста
    Код:
        &НаКлиенте
    Процедура ТоварыРеальноеКоличествоПриИзменении(Элемент)
                    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
                    ТекущаяСтрока.РеальнаяСумма = ПолучитьСреднююЦену(ТекущаяСтрока.ДГП) * ТекущаяСтрока.РеальноеКоличество;
                    ТекущаяСтрока.РеальныйКуб = ПолучитьСреднююКуб(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество;
                    ТекущаяСтрока.РеальныйКг = ПолучитьСреднююКг(ТекущаяСтрока.Дгп) * ТекущаяСтрока.РеальноеКоличество;
    КонецПроцедуры
    &НаСервереБезКонтекста
    Функция ПолучитьСреднююЦену(ДГП)
                    Возврат(ДГП.Сумма / ДГП.Количество);
                    //Возврат(ДГП.Куб / ДГП.Количество);
                    //Возврат(ДГП.ОбщийКг / ДГП.Количество);    
                    //
                КонецФункции // ()
    
                &НаСервереБезКонтекста
    Функция ПолучитьСреднююКуб(ДГП)
                    Возврат(ДГП.Куб / ДГП.Количество);   
                   
                КонецФункции //
               
                            &НаСервереБезКонтекста
    Функция ПолучитьСреднююКг(ДГП)
                    Возврат(ДГП.ОбщийКг / ДГП.Количество);    
                   
                КонецФункции //
    
    ошибки нет
    Код:
    Синтаксических ошибок не обнаружено!
    
    но при изменение
    upload_2014-11-26_10-48-48.png
  16. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    А что не понятно из текста ошибки?? Ругается на строку:
    Код:
    Возврат(ДГП.Куб / ДГП.Количество);
    ЗЫ: у 1с имеется отладчик, научитесь им пользоваться, пригодится ;)
  17. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Отладчик вам в помощь. Ошибка явная.
  18. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    у объекта ДГП нет поля Куб по всей вероятности. И еще. Если ДГП.Количество будет 0, то у вас будет во всех 3-х процедурах ошибка деления на ноль. Надо проверку делать
  19. TopicStarter Overlay
    Эмиль0690
    Offline

    Эмиль0690 Опытный в 1С

    Регистрация:
    3 фев 2014
    Сообщения:
    290
    Симпатии:
    2
    Баллы:
    29
    ошибку нашел вместо Куб должно быть ОбщийКуб
    а вот при сохранение теперь ошибки есть
    посмотрите пожалуйста
    Код:
    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
       
        // общая сумма
        ПромежуточнаяСумма=0;
        Для Каждого ТекСтрока Из Товары Цикл
            ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальнаяСумма;
            //ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальныйКуб;
            //ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальныйКг;
        КонецЦикла;
        ОбщаяСумма=ПромежуточнаяСумма;
        Прибыль = ОбщаяСумма - Перевозчик.ОбщийРасход;
        //РеальныйОбщийКуб=ПромежуточнаяСумма;
        //РеальныйОбщийКг=ПромежуточнаяСумма;
    
        // общий куб
        ПромежуточнаяСумма=0;
        Для Каждого ТекСтрока Из Товары Цикл
            ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальныйКуб;
        КонецЦикла;
        РеальныйОбщийКуб=ПромежуточнаяСумма;
           
        // общий кг
        ПромежуточнаяСумма=0;
        Для Каждого ТекСтрока Из Товары Цикл
            ПромежуточнаяСумма=ПромежуточнаяСумма+ТекСтрока.РеальныйКг;
        КонецЦикла;
        РеальныйОбщийКг=ПромежуточнаяСумма;
        Баланс = ОбщийКуб/ОбщийКг;
    
             
    КонецПроцедуры
    
    ошибка
    Код:
    {Документ.ОтправкаГрузаСПункт2.МодульОбъекта(73,11)}: Переменная не определена (ОбщийКуб)
        Баланс = <<?>>ОбщийКуб/ОбщийКг; (Проверка: Сервер)
    {Документ.ОтправкаГрузаСПункт2.МодульОбъекта(73,20)}: Переменная не определена (ОбщийКг)
        Баланс = ОбщийКуб/<<?>>ОбщийКг; (Проверка: Сервер)
    
  20. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Эмиль, вы мне Эльдара (походу это вы и есть) напоминаете. Ну явная же ошибка. Объект.ОбщийКуб (если у вас ОбщийКуб - реквизит объекта)

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