Вашему
взору представлена рассылка "1С: грабли, камни и бриллианты" и ее
ведущий:Железняков Юрий.
Выпуск 62
Настоящий философ всегда говорит, что думает, поэтому больше молчит. (c) Sj
И года не прошло, а
перед вами на экране монитора новый выпуск рассылки, которая спешит в каждый
дом, чтобы сделать работу
на 1С приятной удобной и скорой – в жизни всегда есть место
чуду.
Уважаемый Железняков Юрий, очень
интересно читать вашу рассылку. Особенно интересно зелёному "математику.системному программеру", пару месяцев назад
отучившемуся в университете. Одна лишь вещь повергает меня в недоумение:
после 51 выпуска сразу следует 60. В связи с чем
возникает опять же недоуменный вопрос: а что же случилось с 52, 53, 54, 55,
56, 57, 58 и 59? Нет ли какого заговора против ваших
читателей :) ? Ответьте страждущим определенности.
Заранее
спасибо.
Спешу ответить на данный вопрос: заговор
против читателей нашей всеми любимой рассылки действительно существует, и я
подозревал об этом давно, но не решался высказаться вслух. Сдается мне, что
организован он авторами других рассылок, которых в последнее время развелось так
много, что мало не покажется.
Отдельно
спешу ответить, что в рассылках под номерами 52, 53, 54, 55, 56, 57, 58 и 59
были ответы на самые наболевшие ответы наших читателей. Увы, авторские копии
выкраны конкурирующими организациями и проданы заграницу за очень большие
деньги ( во всяком случае мне так кажется).
Давайте сегодня неторопливо порешаем
следущую задачку.
Сама задача в формулировке выглядит
простой, незатейливой, но ее решение, например у меня вызвало определенные
трудности.
Задача для ТиС:
Определить количество клиентов купивших
товар из какой-то определенной группы, то есть
Товар1,
Товар2 принадлежат группе ГруппаТовара1. Вопрос: сколько клиентов купило
товар из ГруппаТовар1.
Вся проблема упирается в
то, что Клиент1 может купить Товар1 и Товар2.И тогда по группеТовара1
должно быть значение 1, а не 2.
Воспользуемся запросом.
Данные запроса выгрузим в таблицу
значений.
И далее с таблицей значений
проманипулируем так, чтобы получить требуемые цифры.
Решение этой проблемы
расположено ниже ( примерный набросочный код ):
"Период с Дата1 по Дата2;ОбрабатыватьДокументы
Проведенные;Первая=Документ.РасходнаяНакладная.Товар;Клиент=Документ.РасходнаяНакладная.Клиент;
|Сумма=
Документ.РасходнаяНакладная.Сумма;Без
Итогов;Группировка Первая без групп;Группировка Клиент без групп;Функция
ФСумма = Сумма(Сумма);";
ТЗ =СоздатьОбъект("ТаблицаЗначений");
Запрос.Выполнить(ТекстЗапроса);
Запрос.Выгрузить(ТЗ);
ТЗСум = Distinct(ТЗ);
КонецПроцедуры
После получения данной сверки таблицу
значения можно вывести в какой-нибудь отчет. И все будут довольны.
Ну вот, вроде написал всё, что было
написать. А что не смог, знать никому и не нужно.
Пишите мне о том, что вы хотели бы
знать, но,не захотели найти ответ в
книге.
В письме не забудьте,пожалуйста, указать версию 1С, релиз и ОС на компьютере.
Это поможет!
Не бойтесь задавать вопросы!
Приветствуются
любые предложения и пожелания.
Во избежание недоразумений ваши
письма должны иметь явное указание на запрещение публикации их в рассылке.
По умолчанию считается, что письмо публиковать
разрешено.
Если вы в теле письма указали
адрес, я буду его тоже указывать, но специально из реквизитов письма адрес
извлекаться не будет, это весьма трудоемкая и нетривиальная задача.
До встречи, господа программисты и
просто господа!