Автор Тема: 1С 8.0 - Программирование конфигурации с нуля.  (Прочитано 12973 раз)

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

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Всем привет. Плохо что удалили раздел 1С. Придеться писать тут. Прозьба отвечать по делу.

Есть форма документа (см. рисунок). Нужно прописать процедуру, которая принажатии кнопки "Заполнить", вставляла ФИО студентов в табличную часть в зависимости какая группа выбрана. Выборка студентов получается, но вот вставка в таб. часть нет. Помогите.


Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Разобрался. Вопрос снимается.

Оффлайн kialim

  • Пользователь
  • **
  • Сообщений: 78
  • Карма: 7
  • Пол: Женский
    • Просмотр профиля
Всем привет. Плохо что удалили раздел 1С. Придеться писать тут.
А почему удалили? Что случилось? Там хоть про курсы всякие мнения были........

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Всем привет. Плохо что удалили раздел 1С. Придеться писать тут.
А почему удалили? Что случилось? Там хоть про курсы всякие мнения были........
Слухи были что это чья та месть была.

Оффлайн _Kid_

  • Ветеран
  • *****
  • Сообщений: 1941
  • Карма: 543
  • Пол: Мужской
  • Я - МРАЗЬ
    • Просмотр профиля
Слухи были что это чья та месть была.
ого, уже и слухи попалзли, а нельзя ли с этого момента пападробней [preved]
ГЛАВМУР
особенно резко точку зрения меняет удар в глаз
Бабло побеждает зло!!!

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Слухи были что это чья та месть была.
ого, уже и слухи попалзли, а нельзя ли с этого момента пападробней [preved]
Не. Я сам толком ни чего не знаю. Интересно. Откроют раздел снова?

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Есть домумент который формирует движение по регистру сведений, но он не является и не должен являться регистратором к регистру. Вот процедура:
Процедура ОбработкаПроведения(Отказ, Режим)
   Для Каждого ТекСтрокаСписокСтудентов Из СписокСтудентов Цикл
      Движение = РегистрыСведений.Успеваемость.СоздатьМенеджерЗаписи();
      Движение.Дисциплина = Дисциплина;
      Движение.Группа = Группа;
      Движение.Семестр = Семестр;
      Движение.Студент = ТекСтрокаСписокСтудентов.ФИО;
      Движение.РейтенговаяОценкаСумма = ТекСтрокаСписокСтудентов.РейтенговаяОценкаСумма;
      Движение.Оценка = ТекСтрокаСписокСтудентов.АттестОценка;
   КонецЦикла;
   Движение.Записать();
КонецПроцедуры

Вопрос такой. Нужно написать процедуру, которая будет удалять движения в регистре в случаи отмены проведения, либо удаления или пометки на удаления документы.

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Плиз!!! Объясните неумному!!!
Есть процедура:
Процедура Найти();
       Успеваемость = РегистрыСведений.Успеваемость;
       Отбор = Новый Структура;
      Отбор.Вставить("Дисциплина" ,Дисциплина);
      Отбор.Вставить("Группа", Группа);
      Отбор.Вставить("Семестр", Семестр);
                          ВыборкаУспеваемость = Успеваемость.Выбрать(Отбор);
      Пока ВыборкаУспеваемость.Следующий() Цикл
         Сообщить(ВыборкаУспеваемость.Группа);
      КонецЦикла;
КонецПроцедуры;


Почему метод Выбрать(Отбор) Выдает вот такую ошибку:
Ошибка при вызове метода контекста (Выбрать): Недопустимое значение параметра (параметр номер "1")

Вот удалили раздел 1С. Все программисты разбежались.  :(

Оффлайн _Kid_

  • Ветеран
  • *****
  • Сообщений: 1941
  • Карма: 543
  • Пол: Мужской
  • Я - МРАЗЬ
    • Просмотр профиля
Вопрос такой. Нужно написать процедуру, которая будет удалять движения в регистре в случаи отмены проведения, либо удаления или пометки на удаления документы.

есть процедура обработчик события, ОбработкаУдаленияПроведения в ней и прописываешь удаление записей регистра сведений
ГЛАВМУР
особенно резко точку зрения меняет удар в глаз
Бабло побеждает зло!!!

Оффлайн _Kid_

  • Ветеран
  • *****
  • Сообщений: 1941
  • Карма: 543
  • Пол: Мужской
  • Я - МРАЗЬ
    • Просмотр профиля

Почему метод Выбрать(Отбор) Выдает вот такую ошибку:
Ошибка при вызове метода контекста (Выбрать): Недопустимое значение параметра (параметр номер "1")

Вот удалили раздел 1С. Все программисты разбежались.  :(

для начала, проверь совпадают лм имена измерений и ресурсов, с тем что ты пишешь в отборе
ГЛАВМУР
особенно резко точку зрения меняет удар в глаз
Бабло побеждает зло!!!

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля

Почему метод Выбрать(Отбор) Выдает вот такую ошибку:
Ошибка при вызове метода контекста (Выбрать): Недопустимое значение параметра (параметр номер "1")

Вот удалили раздел 1С. Все программисты разбежались.  :(

для начала, проверь совпадают лм имена измерений и ресурсов, с тем что ты пишешь в отборе

Имена совпадают все. Проверил 5 раз.
Но в процедуре я не указал измерение ФИОСтудента. Так как мне надо найти все записи регистра только по дисциплине, группе и семестру.
Или нужно еще указывать ФИО???


Оффлайн _Kid_

  • Ветеран
  • *****
  • Сообщений: 1941
  • Карма: 543
  • Пол: Мужской
  • Я - МРАЗЬ
    • Просмотр профиля
нет, фио не абизательно, есле не нужен атбор па ниму

скинь структуру метаданных регистра
ГЛАВМУР
особенно резко точку зрения меняет удар в глаз
Бабло побеждает зло!!!

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
нет, фио не абизательно, есле не нужен атбор па ниму

скинь структуру метаданных регистра

Регистр Успеваемость:
Измерения:
 Дисциплина - СправочникСсылка.Предметы
 Группа - СправочникСсылка.Группа
 Семестр - ПеречислениеСсылка.Семестр
 Студент - СправочникСсылка.Студенты

Ресурсы:
 РейтенговаяОценкаСумма - Число 5символов
 Оценка - ПеречислениеСсылка.Оценки

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Все. Разобрался. В Структуру Отбор можно вставлять только одно значени.
Это конечно не удобно.
Потом пришлось в цикле добовлять условие чтоб выборка шла по двум другим параметрам.

_Kid_ спасибо за подсказку о событии ОбработкаУдаленияПроведения.

Но как уловить событие Непосредственное удаление документа?

Оффлайн 1Сник

  • Новичок
  • *
  • Сообщений: 19
  • Карма: 2
  • Пол: Мужской
    • Просмотр профиля
Все. Разобрался. В Структуру Отбор можно вставлять только одно значени.
Это конечно не удобно.
Потом пришлось в цикле добовлять условие чтоб выборка шла по двум другим параметрам.

_Kid_ спасибо за подсказку о событии ОбработкаУдаленияПроведения.

Но как уловить событие Непосредственное удаление документа?

В регистрах сведения попробуй вместо выбрать() использовать Получить().

Непосредственное удаление объектов вообще лучше запретить, что бы потом не образовывались битые ссылки.

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Все. Разобрался. В Структуру Отбор можно вставлять только одно значени.
Это конечно не удобно.
Потом пришлось в цикле добовлять условие чтоб выборка шла по двум другим параметрам.

_Kid_ спасибо за подсказку о событии ОбработкаУдаленияПроведения.

Но как уловить событие Непосредственное удаление документа?

В регистрах сведения попробуй вместо выбрать() использовать Получить().

Непосредственное удаление объектов вообще лучше запретить, что бы потом не образовывались битые ссылки.
Мне нужно было не получить ( Получить() )значения ресурсов, а именно выбрать все записи (Выбрать () ).
И спасибо за подсказку  "Непосредственное удаление объектов вообще лучше запретить", так и сделал. :-)

Оффлайн _Kid_

  • Ветеран
  • *****
  • Сообщений: 1941
  • Карма: 543
  • Пол: Мужской
  • Я - МРАЗЬ
    • Просмотр профиля
Мне нужно было не получить ( Получить() )значения ресурсов, а именно выбрать все записи (Выбрать () ).

ээээй, савсем мой голова забыла, а пачемубы не васпользоваца запросом чтобы получить нужные записи регистра, там и множественный атбор можно сделать [preved]
ГЛАВМУР
особенно резко точку зрения меняет удар в глаз
Бабло побеждает зло!!!

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Мне нужно было не получить ( Получить() )значения ресурсов, а именно выбрать все записи (Выбрать () ).

ээээй, савсем мой голова забыла, а пачемубы не васпользоваца запросом чтобы получить нужные записи регистра, там и множественный атбор можно сделать [preved]

Ок. Попробую. Если получиться. Отпишусь. :-)

Оффлайн Nimak

  • Старожил
  • ****
  • Сообщений: 304
  • Карма: -666
    • Просмотр профиля
Вопрос такой.
Есть Макет. Сдандартно: шапка, список (который, береться из табличной части документа), подвал.
Ну так вот, как узнать что  список дошел до конца страница и надо продолжить печать с нового листа?
Просто у меня подвал пропичатывается наполовина на одном листе и другом, а мне надо чтоб подвал был на одном листе.
« Последнее редактирование: 23.09.07, 22:00:33 от Nimak »

Оффлайн _Kid_

  • Ветеран
  • *****
  • Сообщений: 1941
  • Карма: 543
  • Пол: Мужской
  • Я - МРАЗЬ
    • Просмотр профиля
                         
примерно так:

                          ЗапросТовары = Запрос.Выполнить().Выгрузить();
      ТабДокумент  = Новый ТабличныйДокумент;

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