1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Подскажите новичку поджалайста!

Тема в разделе "Базы данных и администрирование", создана пользователем Explorer, 17 янв 2011.

  1. Explorer

    Explorer Гость

    Репутация:
    0
    Есть форма "ЗаявкаНаОтгрузку" в ней табличная часть, в которой есть "Цена" и "Количество".
    В табличной части я создал колонку "Сумма" (Цена*Количество) считает нормально для каждой строки.
    Теперь стоит задача вывести не в табличной части "Итого", которое будет считать Итог полей "Сумма" всех строк таблицы.

    Пробовал Итог("Сумма"); - не работает.
     
  2. gorlanovmax

    gorlanovmax Well-Known Member

    Репутация:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    А в реквизите табличной части "Сумма" в свойсвах стоит "Итог по колонке" ???
     
  3. Explorer

    Explorer Гость

    Репутация:
    0
    Нет. Это вообще не реквизит. Сейчас попробую сделать реквизит такой.
    Добавил реквизит табличной части "Сумма", поставил галочку, где сказали и ввел формулу КолВо*Цена.
    Перестал считать строку.

    Рядом создал обратно текстовое поле "Сумма2" и ввел формулу КолВо*Цена
    Считает нормально.
     
  4. Дайнеко

    Дайнеко Well-Known Member

    Репутация:
    0
    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Эх, молодь. Когда-то и я был таким.

    Это 2 принципиально разных варианта:
    1. поле текстовое, в нем формула вычисляет значение. Вызывается после всех изменений и документе. Результат только на экране и нигде не хранится.
    2. поле в базе (реквизит док-та). В его свойствах ничего не писать. В колонках, Цена и Кол поставить Выч_Сумма(). Создать процедуру Выч_Сумма(). В ней: Сумма = Цена * Кол;
    Тогда к полю можно обращаться и к его итогу.
     
  5. Explorer

    Explorer Гость

    Репутация:
    0
    Спасибо! Все получилось.
     
  6. vbs

    vbs Well-Known Member

    Репутация:
    0
    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Если речь о 7.7 - без указания итога по колонке будет работать только внутри формы документа.
    Во внешних обработках Док.Итог("Сумма") выдаст ошибку - года два назад обсуждали эту проблему
     
  7. SupremeMax

    SupremeMax Гость

    Репутация:
    0
    Здравствуйте! Я начинающий программист (всего месяц), работаю в версии 8.2, требуется ваша неоценимая помощь! Имеется ИЕРАРХИЧЕСКИЙ справочник "Сотрудники", состоящий из 2х групп: Работающие и Уволенные. Справочник состоит из 4х колонок: Код, Наименование(имеется ввиду ФИО сотрудника), Дата рождения, Процент премии. Мне необходимо выполнить отбор по Дате рождения, т.е. в соответствующих полях я назначаю интервал дат, в соответствии с которым при нажатии кнопки "Вывести" на печать будет выведен список сотрудников, чьи даты рождения входят в назначенный пользователем интервал. Для того, чтобы лучше понять мой вопрос, в прикрепленных файлах имеются картинки. Я вписывал следующий код:
    Код:
    Процедура ВывестиНажатие(Элемент)
    ТабДок = Новый ТабличныйДокумент;
    Макет = Справочники.Сотрудники.ПолучитьМакет("Печать");
    // Заголовок
    Область = Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(Область);
    //Шапка
    Область = Макет.ПолучитьОбласть("Шапка");
    ТабДок.Вывести(Область);
    ДатаРождения = СправочникСписок.Отбор.ДатаРождения;
    Если ДатаРождения.Использование = Истина Тогда
    СтруктураОтбора = Новый Структура("ДатаРождения", ДатаРождения.Значение);
    КонецЕсли;
    Выборка = Справочники.Сотрудники.ВыбратьИерархически(С,По1,"возр");
    Группа = Макет.ПолучитьОбласть("Группа");
    Элемент = Макет.ПолучитьОбласть("Элемент");
    Пока Выборка.Следующий()= Истина Цикл
    Если Выборка.ЭтоГруппа Тогда
    Область = Макет.ПолучитьОбласть("Группа");
    Группа.Параметры.Код = Выборка.Код;
    Группа.Параметры.Наименование = Выборка.Наименование;
    Группа.Параметры.ДатаРождения = Выборка.ДатаРождения;
    Группа.Параметры.ПроцентПремии = Выборка.ПроцентПремии;
    ТабДок.Вывести(Группа);
    Иначе 
    Область = Макет.ПолучитьОбласть("Элемент");
    Элемент.Параметры.Код = Выборка.Код;
    Элемент.Параметры.Наименование = Выборка.Наименование;
    Элемент.Параметры.ДатаРождения = Выборка.ДатаРождения;
    Элемент.Параметры.ПроцентПремии = Выборка.ПроцентПремии;
    ТабДок.Вывести(Элемент);
    КонецЕсли;
    
    КонецЦикла;
    
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    
    КонецПроцедуры
    При нажатии кнопки "Вывести" в режиме исполния мне выдается следующая ошибка:

    {Справочник.Сотрудники.Форма.ФормаСписка.Форма(159)}: Ошибка при вызове метода контекста (ВыбратьИерархически): Несоответствие типов (параметр номер '1')
    Выборка = Справочники.Сотрудники.ВыбратьИерархически(С,По1,"возр");
    по причине:
    Несоответствие типов (параметр номер '1')

    Подскажите, пожалуйста, что я делаю непарвильно?
     

    Вложения:

    • Подскажите новичку поджалайста!
      __________.png
      Размер файла:
      31,6 КБ
      Просмотров:
      109
    • Подскажите новичку поджалайста!
      _________.png
      Размер файла:
      25,2 КБ
      Просмотров:
      106
  8. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
    ВыбратьИерархически (SelectHierarchically)
    Синтаксис:

    ВыбратьИерархически(<Родитель>, <Владелец>, <Отбор>, <Порядок>)
    Параметры:

    <Родитель> (необязательный)

    Тип: СправочникСсылка. Отбор по родителю. Имеет смысл только для многоуровневых справочников. Если параметр не задан, то отбор по родителю не производится.
    <Владелец> (необязательный)

    Тип: СправочникСсылка. Отбор по владельцу. Имеет смысл только для подчиненных справочников. Если параметр не задан, то отбор по владельцу не производится.
    <Отбор> (необязательный)

    Тип: Структура. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. Могут задаваться только "Код", "Наименование" и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или в значение "Индексировать с доп. упорядоч.".
    Важно! Структура может содержать только один элемент.
    Если параметр не указан, то отбор не используется.
    <Порядок> (необязательный)

    Тип: Строка. Строка с именем реквизита справочника, определяющая упорядочивание элементов в выборке. Может быть указано "Код", "Наименование" или имя одного из реквизитов примитивного типа (Число, Строка, Дата, Булево), для которого установлен признак "Индексирование" в значение "Индексировать" или "Индексировать с дополнительным упорядочиванием" в конфигураторе. После имени реквизита через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Если параметр не указан, то порядок определяется основным представлением справочника.
    Значение по умолчанию: Пустая строка
    Возвращаемое значение:

    Тип: СправочникВыборка.
    Описание:

    Формирует иерархическую выборку элементов справочника по заданным условиям. При иерархической выборке для каждого элемента сначала выбираются элементы, для которых он является родителем, а затем уже выбираются элементы следующего уровня.

    Доступность:

    Сервер, толстый клиент, внешнее соединение.
    Пример:

    Товары = Справочники.Номенклатура;
    ВыборкаСправочника = Товары.ВыбратьИерархически();
     
  9. SupremeMax

    SupremeMax Гость

    Репутация:
    0
    Был бы очень признателен, если бы исправили ошибки непосредственно в самом коде, мне просто так будет намного понятней. unknown181538, Спачибо огромное за помощь, принял вашу информацию к сведению, но вместо одних ошибок стали появляться другие...Возможно я опять что-то делаю неправильно.....
     
  10. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    Намного эффективней будет, если вы потратите время на смостоятельный их поиск.
     
  11. SupremeMax

    SupremeMax Гость

    Репутация:
    0
    Я уже несколько дней пытаюсь устранить все эти ошибки, у меня уже голова кипит от этого справочника....
     
  12. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    Напишите хотя бы ошибку.
     
  13. SupremeMax

    SupremeMax Гость

    Репутация:
    0
    unknown181538, спасибо вам большое, я ежу разобрался!!!
     
Загрузка...

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