8.х Регистр сведений

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

  1. TopicStarter Overlay
    Dem0lisher
    Offline

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

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Здравствуйте!
    У меня что-то не соединяет.
    Надо построить штатное расписание, (подразделение,должность и тд.) Использую регистр сведений "Сотрудники" ,но в нем могут быть не все отделы, все отделы хранятся в справочнике "подразделения"
    Поэтому решил Левое соединение сделать Слева Справочник Подразделения, справа Регистр. но в результате далеко не все подразделения..
    Почему, что не так?

    Код:
    зап.Текст= "ВЫБРАТЬ
    |	Подразделения.Ссылка КАК Подразделение,
    |	СотрудникиСрезПоследних.ФизЛицо,
    |	СотрудникиСрезПоследних.Должность,
    |	СотрудникиСрезПоследних.Оклад
    |ИЗ
    |	Справочник.Подразделения КАК Подразделения
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Сотрудники.СрезПоследних(, Статус = &Статус) КАК СотрудникиСрезПоследних
    |		ПО СотрудникиСрезПоследних.Подразделение = Подразделения.Ссылка"
    
    
    
  2. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Наоборот наверное надо, зачем подразделения в которых нет сотрудников?
  3. sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Может требуется что то вроде этого:

    Код:
    Запрос.Текст= "ВЫБРАТЬ               
    |    СотрудникиСрезПоследних.Физлицо,
    |    СотрудникиСрезПоследних.Подразделение,
    |    СотрудникиСрезПоследних.Должность,
    |    СотрудникиСрезПоследних.Оклад
    |ПОМЕСТИТЬ ПодразделенияССотрудниками
    |ИЗ
    |    РегистрСведений.Сотрудники.СрезПоследних(, Статус = &Статус) КАК СотрудникиСрезПоследних
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ПодразделенияССотрудниками.Подразделение,
    |    ПодразделенияССотрудниками.Физлицо,
    |    ПодразделенияССотрудниками.Должность,
    |    ПодразделенияССотрудниками.Оклад
    |ИЗ
    |    ПодразделенияССотрудниками КАК ПодразделенияССотрудниками
    |
    |ОБЪЕДИНИТЬ
    |
    |ВЫБРАТЬ
    |    Подразделения.Ссылка,
    |    0,
    |    0,
    |    0
    |ИЗ
    |    Справочник.Подразделения КАК Подразделения
    |ГДЕ
    |    (НЕ Подразделения.Ссылка В
    |                (ВЫБРАТЬ
    |                    ПодразделенияССотрудниками.Подразделение
    |                ИЗ
    |                    ПодразделенияССотрудниками КАК ПодразделенияССотрудниками))";
    
    
    
    т.е. если нет в регистре, то и в подразделении никто не числится => выводим подразделение и, к примеру, нули в других реквизитах
  4. TopicStarter Overlay
    Dem0lisher
    Offline

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

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Да вы поняли правильно, если нет никого в подразделении, то всеравно выводить надо хотя бы нули.
    Но вот этот код что-то не работает. ругается на ";"
  5. sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Можно скрин?
    т.к. не должна ругаться... хоть и делал "на лету"

    в моей конфигурации эта инфа хранится не в регистре, а в справочнике, и переделав данный запрос, у меня все четко работает
  6. TopicStarter Overlay
    Dem0lisher
    Offline

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

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Я пошел немного другим путем, с вашей идеей. Вроде работает. Но появилась еще недоработка.
    Надо бы вывести вообще все подразделения, для них подчиненные должности, неважно есть или нет, и к ним сотрудников прицепить, а если нет-0
  7. sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Для каждого подразделения вывести весть список должностей?
    а для каждой должности весь список сотрудников чтоли?
    просто не совсем понятно... или же в случае пустых данных будет выводиться подразделение -> все должности

    Древовидное разбиение должностей будет производиться только в случае положительного результата поиска привязанных сотрудников?

    или примерный скриншотик дайте чтоли)) чтоб было наглядней, что требуется)
  8. TopicStarter Overlay
    Dem0lisher
    Offline

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

    Регистрация:
    4 авг 2009
    Сообщения:
    1.028
    Симпатии:
    51
    Баллы:
    54
    Примерно ТЧ должна выглядеть так:

    ОТДЕЛ | ДОЛЖНОСТЬ | ШТАТ | ФОТ |
    ------------------------------------------------------------------------------------------------------
    Бухгалтерия | Бухгалтер по З/П | 2 | 22000 |
    Бухгалтерия | Бухгалтер по Основным фондам | 1 | 15000 |
    Пошивочный цех №3 | Закройщик | 20 | 200000 |
    Пошивочный цех №3 | Ткач | 15 | 300000 |
    Отдел ИТ | Программист | 0 | 0 |
    Отдел ИТ | Сис.администратор | 0 | 0 |

    Т.е если в отделе никто не числится, то несмотря на это выводить в таблицу этот отдел со всеми подчиненными должностями.
    Справочнику "Отделы" подчинен справочник Должности.
  9. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    А если так попробовать? Справочник должности и левое соединение с регистром.
    Код:
    "ВЫБРАТЬ
    |    Должности.Ссылка КАК Должность,
    |    Должности.Владелец КАК Отдел,
    |    СотрудникиСрезПоследних.ФизЛицо,
    |    СотрудникиСрезПоследних.Оклад
    |ИЗ
    |    Справочник.Должности КАК Должности
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Сотрудники.СрезПоследних(, Статус = &Статус) КАК СотрудникиСрезПоследних
    |        ПО СотрудникиСрезПоследних.Должность = Должности.Ссылка"
    
    
  10. sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Dem0lisher
    Ну сильно это суть не изменило)) запрос формировать нужно по схожей схеме + немного его додумать))


    Вроде бы has дал верное направление: к результату этого запроса добавляем нулевые данные, только уже наверное не нужно будет использовать регистр "СотрудникиСрезПоследних"

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