В модуле формы списка справочника использовать метод УстановитьОтбор(...). Отбор можно устанавливать только для реквизитов с установленным признаком ОтборПоРеквизиту.
Рекомендую своим клиентам устанавливать константе "Проводки по НДС делать по налоговой (при покупке)" значение "Да". Тогда НДС закрывается только при введении Записи книги приобретения (входной налоговой) по каждой операции (за исключением наличных операций). При таком подходе все суммы НДС по неполученным налоговым видно на счете 6442, что очень удобно. Существенный момент: если первое событие оплата, значит в Банковской выписке ставить вид НДС 20%, когда наступает второе событие, тоже ставить вид НДС 20%. В ситуации наоборот с видом НДС тот же подход. Программа сама отслеживает первое событие, и бухгалтеру не надо во втором событии вручную менять ставку на БезНДС или еще чего. Главное, соблюдать хронологическую последовательность ввода документов. Поскольку такое редко удается, то перед анализом НДС (а можно не только раз в месяц, а и чаще) перепровести все документы оптом для восстановления последовательности. Тогда усё будет ОК.
Чтобы не переписывать конфигурацию, можно так. Перенесите справочник контрагентов в однодневку. Напишите несколько обработок, чтобы переносить туда-сюда данные. Из рабочей в однодневку остатки на конец текущего или начало следующего дня со всеми имеющимися элементами справочника товаров, а из однодневки в рабочую -- все документы с новыми элементами справочников товаров и контрагентов. Вечером производите выгрузку в основную базу, сверяете, делаете выгрузку в однодневку остатков на завтра (этой же обработкой можно удалять ненужную информацию, оставляя по одному доку каждого вида для продолжения нумерации). Конфигурации обеих баз идентичные, так что обработки переносов сделать будет несложно, а справочники синхронизировать по артикулу и ЗКПО, в зависимости от вида. Вот только не знаю, что проще: каждый раз создавать новые документы ввода остатков или анализировать изменения и вносить исправления. Новые, наверное, проще. А приход, насколько я понимаю, будет вноситься только в основной базе, и, соответственно, продаваться полученный товар сможет только на следующий день. В общем, идея дурацкая, но если надо и за это платят деньги... К тому же, такое делать намного интереснее, чем обновления ставить
Ребят, и что... никто не может сделать бухам приятное? ))
Реализовано упрощенно: без разделения по ставкам НДС, без льгот и пр. Если правильно понимаю назначение подобной обработки, нереализованное Вам и не понадобится. Если обнаружатся ошибки или недоработки, скажите -- исправлю. Приятная ПечатьННиРНнаОснованииПН
У меня подобные переносы (только из одной модифицированной бухии в другую, иначе модифицированную) реализованы как выгрузки или в dbf, или в txt (загрузки оттуда же соответственно). Синхронизация ТМЦ по артикулу, единиц измерения -- по наименованию, контрагентов -- по ЕДРПОУ. Все элементы справочников, использованные в переносимых документах, выгружаются тоже, а загружаются лишь те, которые не были обнаружены при загрузке документов. Формирование файлов выгрузки и разбор их при загрузке, в основном, через методы объекта Метаданные. Идентификация реквизитов по идентификаторам, как они заданы в конфигураторе. Вам, если будете что-то подобное делать, придется еще позаботится о соответствии реквизитов разных конфигураций. Думаю, посредством ОЛЕ будет легче реализовать. Универсальными обработками переноса не пользуюсь -- предпочитаю писать под конкретные нужды, поэтому посоветовать не могу.
Да, забыла еще момент. В моем варианте выгружаются все документы, синхронизируются по виду, дате и номеру. При обнаружении одинаковых документов проводится поиск различий, если таковые найдены, документ модифицируется и перепроводится.
Запрос=Новый Запрос; Текст=""; Для Каждого Документ Из Метаданные.Документы Цикл Текст=Текст+"ВЫБРАТЬ Ссылка ИЗ Документ."+Документ.Имя+" ОБЪЕДИНИТЬ "; КонецЦикла; Запрос.Текст=Лев(Текст,СтрДлина(Текст)-СтрДлина(" ОБЪЕДИНИТЬ ")); Выборка=Запрос.Выполнить().Выбрать();
Надеюсь, что когда-нибудь Вы поймете, что совет читать и пробовать -- это не есть "плохое", а как раз наоборот. То же относится к АНАЛИЗУ типовых конфигураций. Спасибо, что избавили от труда искать надпись в логотипе (это было довольно сложно), но только надписи "Обучение нежелающих читать и думать программированию в 1С" нет ни в логотипе, ни в ином месте. А по поводу этого
Цитата
Чем больше помощи людям, рано или поздно все это, приумножиться и вернеться, независимо хотите вы этого!
, то пока за помощь получила обвинение в деянии "плохого".
Цитата
Думаю зависит от опытности, подсказчика и желания помочь!
Вот в этом утверждении Вы очень сильно ошибаетесь: все зависит от желания добиться результата и количества/качества приложенных усилий. А наличие подсказчика только облегчает Ваш труд за счет его усилий объяснить Вам что-либо. А теперь по делу. Если Вы хотите научиться что-то делать своими руками и головой, последующая информация поможет Вам. В реестр данные попадают из таблицы лТаблЗН, как видно из Вашего рисунка (Вы этого посмотреть сами не хотите, желаете, чтобы позсказчик посмотрел и Вам объяснил). Проверьте, есть ли в этой таблице колонка с самим документом или его видом. Если есть, значит Вы можете организовать проверку: если вид документа в конфигураторе налоговая накладная выданная, то вид документа в рееестре ПН, а если вид документа приложение 2, то РК. Если же в таблице подобной колонки нет, можете добавить колонку с видом документа в реестре, анализируйте вид документа на стадии заполнения таблицы и сразу заполняйте новую колонку необходимым значением. А в печатной форме документа колонку Вид документа заполняйте из той же таблицы. Это все будет выглядеть приблизительно так (это пример, его надо переделать под Вашу конфигурацию и реестр):
// добавляем колонку в таблицу (там, где создаются остальные колонки таблицы) лТаблЗН.НоваяКолонка("ВидДока","Строка",6,);
// где-то при обходе результатов выборки налоговых документов (обход результатов запроса) // виды документов необходимо указывать так, как они заданы в конфигураторе Если Запрос.ДокументНалоговаяНакладная.Вид()="НалоговаяНакладнаяРасходная" Тогда лТаблЗН.ВидДока="ПН"; ИначеЕсли Запрос.ДокументНалоговаяНакладная.Вид()="Приложение2" Тогда лТаблЗН.ВидДока="РК"; Иначе // что-то пишем, если есть другие варианты КонецЕсли; // ДокументНалоговаяНакладная.Вид()="НалоговаяНакладнаяРасходная"
Уважаемые мужчины! Поздравляю вас с прошедшим праздником Защитника Отечества и желаю никогда не стать таковым в будущем! P.S. К сожалению, с опозданием, зато лично
yfrf111, ну посмотрите, как реализовано заполнение этих ячеек в стандартной отчетности и сделайте по аналогии. Например, для определения года даты используйте функцию ДатаГод(НачалоПериода), а для месяца -- ДатаМесяц(НачалоПериода). По клеточкам строку разбивать Вы уже научились. Только ж вместо НачалоПериода напишите имя переменной из Вашего модуля, а то опять скажете, что мой вариант не работает. Если Вы и далее не будете пытаться думать сами, придется Вам либо предоставлять платные консультации, либо платные услуги.
Если кому интересно или пригодится, загадочное оказалось, как это часто бывает, банальным. Группировку по нескольким видам документов можно упорядочивать только по общим реквизитам документов, стандартным реквизитам (они, по сути, тоже являются общими) и функциям. В данном случае упорядочивание происходило только по одному виду документов -- первому -- НалоговаяНакладная. Поскольку второй вид документов в упорядочивании не участвовал, значение упорядочивания для таких документов было равно 0, поэтому они выводились первыми (документ под № 7 был Приложением 2, не так ли?). Сортировались такие доки, вероятно, по внутреннему номеру.
А в ПУБ нет выбора расчета НДС от цен СНДС/БезНДС? Может, в зависимости от выбора запрещается редактирование соответствующих реквизитов. Там и искать, если есть такое.
Пожалуй, вставлю. Свои 5 копеек. Началось с того, что отнесла резюме на должность программиста в самую крутую компьютерную фирму в городе. С фотографией. Через полгода позвонили, предложили на предприятии в районе провести обучение персонала работе на компьютере. Послезавтра начинать. Windows в глаза не видела, мышь в руках не держала. Не призналась и согласилась. Завтра дали книжку по Win'95. Ночь составляла план обучения и писала конспект. В автобусе по дороге учила то, что написала ночью. Приехала и познакомилась. Увидела Windows. Чуть не упала в обморок, когда присмотрелась и увидела, что Windows-то -- 98! (НачалоЦикла) Уверенно учила народ работать с компом и мышь в руки не брала, "дабы народ постигал на практике" (когда никто не видел, попробовала дважды кликнуть по иконке -- хорошо, что никто не видел). В автобусе по дороге домой спала. Ночь писала конспект. В автобусе по дороге туда учила конспект. (КонецЦикла) В предпоследний день обучения объявила об экзамене завтра. Завтра получила могорыч, персонал сдал экзамен. Когда-то позжее получила гонорар. Через полгода позвонили, попросили заменить программиста, пока он в отпуске. Обрадовалась (в институте ж Паскаль выучила ) и согласилась. Вышла на работу, второй раз увидела Windows. Услышала странное слово 1С. Узнала о существовании бухгалтерского учета. Дали книжку "Руководство пользователя. 7.0". Через месяц программист вернулся из отпуска, его уволили, мне предложили постоянное место. За грошИ. Но зато дали комп (без интернета) и разрешили за ним хоть круглосуточно сидеть. Вызывали клиенты, у которых были проблемы и 1С 2.0, 5.0, 6.0, 7.0 и 7.5. Училась в процессе ликвидации проблем на месте у клиента и разбирая модули всех проданных конфигураций. Еще задолбала телефонными звонками ребят-разработчиков конфигураций. А еще у меня появились планы продаж и привлечения клиентов. Через полгода начала писать свою первую конфу под торговлю и переписывать комплексную конфигурацию под предприятие, занимающееся международными перевозками. С тех пор такого прогресса, как за первые полгода работы (с 0 и до чего-то), не было никогда. Это все к слову об опыте. В частности, нужен ли он, чтобы работать, и где его взять, чтобы работать. И не думаю, что хлеб с маслом будет без опыта, зато без масла может опыт появиться. А в качестве тренировки можно решать все проблемы и задачи, которые озвучивают на сайтах.
Возьму для разбора пример сложнее: 1 ящ. = 7 уп. 1 уп. = 6 р.
С минимальным дописыванием предлагаю такой вариант. Базовая единица -- самая мелкая, т.е. рулон. Остальные единицы добавляем в справочник единиц с коэффициентами перерасчета из базовой. А именно: для упаковки коэффициент равен 6, для ящика -- 6 х 7 = 42. При оприходовании, списании, возврате можно выбирать любое к-во в любых единицах. Вероятно, если захотите пользоваться стандартным подбором в разных единицах измерения, придется немного подкорректировать. Но если пользоваться сканером, можно обойтись без дописок. Думаю, что функция перерасчета из единицы в единицу в глобальном модуле есть. Поскольку весь учет ведется в базовых единицах, в них и выводятся результаты. Чтобы получить отчеты (печформы накладных и пр.), необходимо в глобальный модуль закинуть функцию типа такой:
//********************************************************************* Функция ВыбратьЕдиницы(Товар,ТаблЕд) Если ТаблЕд.ТипЗначенияСтр()<>"ТаблицаЗначений" Тогда Возврат 0; КонецЕсли; // ТаблЕд.ТипЗначенияСтр()<>"ТаблицаЗначений" Если ТаблЕд.КоличествоКолонок()<>0 Тогда ТаблЕд.УдалитьСтроки(); Иначе таблЕд.НоваяКолонка("ед","Справочник.ЕдиницыИзмерения",,); ТаблЕд.НоваяКолонка("ИмяЕд","Строка",5,); ТаблЕд.НоваяКолонка("Коэф","Число",10,3); КонецЕсли; // ТаблЕд.КоличествоКолонок()<>0 СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения"); СпрЕд.ИспользоватьВладельца(Товар); Если СпрЕд.ВыбратьЭлементы()=0 Тогда Возврат 0; КонецЕсли; // СпрЕд.ВыбратьЭлементы()=0 Пока СпрЕд.ПолучитьЭлемент()=1 Цикл ТаблЕд.НоваяСтрока(); ТаблЕд.Ед=Спр.ТекущийЭлемент();// на всякий случай ТаблЕд.ИмяЕд=Спр.Наименование; // это сокращенное наименование для печати ТаблЕд.Коэф=Спр.Коэффициент; КонецЦикла; ТаблЕд.Сортировать("-Коэф"); Возврат 1; КонецФункции //ВыбратьЕдиницы
//********************************************************************* Функция ДобавитьРазделитель(Стр,Разделитель) Если ПустоеЗначение(СкорЛП(Стр))=1 Тогда Возврат Стр; Иначе Возврат Стр+Разделитель; КонецЕсли; // ПустоеЗначение(СкорЛП(Стр))=1 КонецФункции //ДобавитьРазделитель
// надо обратить внимание на обработку таких ошибок, как // наличие нескольких единиц с одинаковым коэф; //********************************************************************* Функция ФорматКвоВоВсехЕд(Товар,Кво) Перем ТаблЕд,РезФормат; Если Кво<0 Тогда Возврат Кво; КонецЕсли; // Кво<0 Если ПустоеЗначение(Товар)=1 Тогда Возврат Кво; КонецЕсли; // ПустоеЗначение(Товар)=1 РезФормат=""; Разделитель="+"; ТаблЕд=СоздатьОбъект("ТаблицаЗначений"); Если ВыбратьЕдиницы(Товар,ТаблЕд)=0 Тогда Возврат Кво; КонецЕсли; // ВыбратьЕдиницы(Товар,ТаблЕд)=0 Если Кво=0 Тогда РезФормат=РезФормат+Кво+" "+ТаблЕд.ПолучитьЗначение(ТаблЕд.КоличествоСтрок(),"ИмяЕд"); Возврат РезФормат; КонецЕсли; // Кво=0 ТаблЕд.ВыбратьСтроки(); ОстКво=Кво; Пока ТаблЕд.ПолучитьСтроку()=1 Цикл к=ТаблЕд.Коэф; Если к=0 Тогда Продолжить; КонецЕсли; // ТаблЕд.Коэф=0 имяЕд=ТаблЕд.ИмяЕд; Если ОстКво>0 Тогда ТекКво=Цел(ОстКво/к); Если ТаблЕд.НомерСтроки=ТаблЕд.КоличествоСтрок() Тогда РезФормат=ДобавитьРазделитель(РезФормат,Разделитель)+ОстКво+ИмяЕд; Возврат РезФормат; ИначеЕсли ТекКво=0 Тогда Продолжить; КонецЕсли; // ТаблЕд.НомерСтроки=ТаблЕд.КоличествоСтрок() ОстКво=ОстКво-ТекКво; РезФормат=ДобавитьРазделитель(РезФормат,Разделитель)+ТекКво+ИмяЕд; КонецЕсли; // ОстКво>0 КонецЦикла; Если ПустоеЗначение(СокрЛП(РезФормат))=1 Тогда Возврат Кво; Иначе Возврат РезФормат; КонецЕсли; // ПустоеЗначение(СокрЛП(РезФормат))=1 КонецФункции //ФорматКвоВЕд
Значения Кво печатных форм заменить на ФорматКвоВоВсехЕд(Товар,Кво). Писала на скорую руку в качестве примера, а не рабочего образца, т.е. возможны неточности и ошибки. Понятно, что все можно сделать гораздо красивше. Видимые минусы: -- будут нюансы, когда начнут распаковывать упаковки до того, как продадут уже распакованные остатки; -- не знаю, насколько увеличится время формирования отчетов (останется ли оно удовлетворительным при наличии большого ассортимента); -- к-во всегда пересчитывается в единицы, начиная с крупных, т.е. учет может не отвечать факту: взяли не 1 ящик, а 7 разрозненных упаковок; -- почие -. Видимые плюсы: -- простейшая доработка; -- не затрагивает ни структуру базы, ни структуру учета.
Например, такой вариант. Сделать запрос по документам вагон, первая группировка по номеру вагона (вероятно, это вагон и есть), вторая по снятым запчастям. Делаем таблицу значений: 1 колонка -- номер вагона, последующие -- снятые запчасти. Проходим результаты запроса и заполняем таблицу: новый вагон -- новая строка; если колонка с такой запчастью уже есть, добавляем к-во в нее, если нет -- создаем новую колонку. Обходим строки таблицы значений и выводим рез-ты в печатную форму. Надеюсь, к-во наименований запчастей умеренно. Можно сделать таблицу соответствий названий колонок и запчастей, если наименования запчастей сложные и/или длинные. А можно вообще запросом обойтись без всяких таблиц, использовать Все ВошедшиеВЗапрос. Пройтись по группировкам и рез-ты сразу в печатную форму.
Т.к. участились вопросы по этой теме, вот от меня небольшая инструкция.
Инструкция по выгрузике отчета в пенсионный фонд (ЕСВ) из 1С в АРМ (Бест)
В 1С открываем Отчет в пенсионный фонд (ЕСВ). Заполняем. Правим. Указываем каталог выгрузки (слева вверху отчета под названием фирмы). Действия => Сохранить в файлы *.dbf В АРМе (Бэсте): Звітність => Єдиний внесок => Звіт => Імпорт з dbf Місяць -- выбираем нужный месяц (период отчета) Оберіть каталог для імпорту -- указываем то же, что в 1С в каталоге выгрузки. Таблиця №5 -- указываем файл, название которого заканчивается на 05С.DBF. Таблиця №6 -- //-//-// на 06С.DBF. Таблиця №7 -- //-//-// на 07С.DBF.
Проголосовала за Вы. 1. Любой воспитанный человек обращается к незнакомому человеку на "Вы", невзирая на возраст, социальное положение, пол, рейтинг, статус и пр. 2. На "ты" могут общаться люди (в т.ч. программисты, участники форума и т.д.), которые сами пришли к такому обоюдному решению. Причины, побудившие к принятию такого решения, значения не имеют.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!