Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 08:13

Проверка справочника и проведение документа

Автор AlexKag, 26 сен 2012, 16:58

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

ГК

нет, не надо. ГруппаПеревода - это ведь тоже группа. У вас будут последовательные записи, фиксирующие, когда студент был зачислен в группу 2СП, когда - в группу 3СП.

AlexKag

А помните вы мне говорили что СтатусСтудента лучше делать с помощью регистра.. так вот, скажите можно вот к этому регистру, о котором речь в этой теме, добавить еще и регистр СтатусСтудента.. то есть в ресурсы еще и статус добавить.. можно же?

mixqn

Можно то можно, но надо определиться с целесообразностью. Вообще, принципиально можно все данные впихнуть в 1 большую таблицу, просто для каждого случая будут использоваться свои колонки, а часть ячеек этой мега-таблицы будет пустой, будет что-то типа шахматного поля (могу ошибаться, но вроде это называется "первая нормальная форма" по научному). Если данные взаимосвязаны друг с другом, то есть смысл положить их в одну таблицу (1 регистр), если нет, то наверно не стоит. В вашем случае скорее нет чем да (на мой взгляд) - вроде бы это разные характеристики: группа и статус, хотя я не уверен, вам виднее.

ГК

Я думаю, группу нужно разместить все-таки в измерениях, потому что вам наверняка потребуются

отчеты типа "все студенты такой-то группы". Т.е. Группа должна быть в группировках

(измерениях). А статус - в ресурсах. Но в таком случае не должно быть статусов, при которых

Группа - пустая. 
Для статусов, как говорили, должно быть создано перечисление. Для групп

надо создать справочник "Группы". К этому справочнику также можете привязывать какие-нибудь

расписания занятий :)

Документ перевода студентов из одной группы в другую должен иметь поля ГруппаСтарая и ГруппаНовая и делать в регистр 2 записи по каждому студенту: 1) студент, ГруппаСтарая, статус "переведен в другую группу"; 2) студент, ГруппаНовая, статус "учится".

Наверное как-то так.

mixqn

Цитата: ГК от 27 сен 2012, 08:25
Я думаю, группу нужно разместить все-таки в измерениях, потому что вам наверняка потребуются

отчеты типа "все студенты такой-то группы". Т.е. Группа должна быть в группировках

(измерениях).
не вижу логики. почему группа должна быть в измерениях? что мешает сделать группировку в запросе по ресурсу? ради сомнительной выгоды создадите геморрой - придется вручную (ну в смысле своим кодом) проверять уникальность, вместо того чтобы поручить это платформе (хотя конечно ручная проверка все равно нужна, правда с другой целью - чтобы заменить стандартное сообщение платформы на более человеко-понятное, тем не менее, не вижу "изюма" - ради чего делать группу измерением).

Цитата: ГК от 27 сен 2012, 08:25
Документ перевода студентов из одной группы в другую должен иметь поля ГруппаСтарая и ГруппаНовая и делать в регистр 2 записи по каждому студенту: 1) студент, ГруппаСтарая, статус "переведен в другую группу"; 2) студент, ГруппаНовая, статус "учится".
тоже глупость. какая смысловая нагрузка записи "студент, ГруппаСтарая, статус "переведен в другую группу"" ?? для чего она? достаточно записывать дату, студента и группу. все. этого достаточно чтобы построить любые отчеты потом на любую дату.

AlexKag

Хорошо, допустим воспользовавшись советом, я опять-таки в регистре оставлю только информацию о группах (статус уберу).. но ведь мне статус все равно потребуется.. подскажите, для этого еще один регистр создать, отдельно для статусов  и прикрепить к этому же документу? Ведь можно же несколько регистров прикреплять к одному документу?

Slin

Цитата: AlexKag от 27 сен 2012, 12:22
Ведь можно же несколько регистров прикреплять к одному документу?
Можно.
Еще замечание-предложение. Статус "Переведен в другую группу" вообще не нужен. Статус должен отражать состояние на дату - типа "Учится". Факт перевода в другую группу лучше отразить документом (что-то вроде "Перевод"), который и будет документом-регистратором регистра сведения по группам
skype: slin-dev

AlexKag

То есть создать регистр "сведения по группам", и там уже указывать этот факт перевода

AlexKag

А скажите, не могли бы вы помочь мне с запросом... который собственно по этой теме и требуется.. ? Подскажите с чего начать?

AlexKag

Есть вот такой вариант


Процедура ПроверитьКоличество()
      Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   РегистрПереводаСрезПоследних.Количество КАК Количество
      |ИЗ
      |   РегистрСведений.РегистрПеревода.СрезПоследних КАК РегистрПереводаСрезПоследних
      |ГДЕ
      |   РегистрПереводаСрезПоследних.Группа = &Группа
      |   И РегистрПереводаСрезПоследних.Период = &Период
      |ИТОГИ
      |   СУММА(Количество)
      |ПО
      |   ОБЩИЕ";

   Запрос.УстановитьПараметр("Группа", Группа);
   Запрос.УстановитьПараметр("Период", Период);

   Результат = Запрос.Выполнить();

   ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

   ВыборкаОбщийИтог.Следующий();      
   // Вставить обработку выборки ВыборкаОбщийИтог

   ВыборкаДетальныеЗаписи = ВыборкаОбщийИтог.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      Если ВыборкаДетальныеЗаписи.Количество()<>0 Тогда
         Возврат ложь;
      Иначе
         Возврат Истина;
      КонецЕсли;
   КонецЦикла;
КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск